Здесь кажется, что у вас есть массив узлов, и у каждого узла есть набор строк или другой массив узлов, верно?Первое, что вы можете сделать, это просто десериализовать это в List<object>
примерно так:
string treeData = "..."; // The JSON data from the POST
JavaScriptSerializer js = new JavaScriptSerializer();
List<object> tree = js.Deserialize <List<object>>(treeData);
Это превратит ваш JSON в список объектов, хотя вам нужно будет вручную выяснить, что к чему(если каждый объект является строкой или другим List<object>
).
Обычно, однако, полезно иметь некоторый класс или структуру для представления "схемы" для данных, которые вы предоставляете сериализатору, ноэто немного больше работы, чем выше.
В этом случае вам нужно, чтобы ваши входные данные были реальным объектом JSON, а не просто массивом.Скажем, у вас есть этот JSON (на основе приведенных выше данных):
{id: "root", children: [
{id: "881150024"},
{id: "881150024", children: [
{id: "994441819"}, {id: "881150024"}]},
{id: "-256163399"},
{id: "-256163399", children: [
{id: "-492694206"},
{id: "-256163399", children: [
{id: "1706814966"},
{id: "-256163399", children: [
{id: "-26481618"}, {id: "-256163399"}]}
]}]}]}
Если у вас есть такой класс:
public class Node
{
public String id;
public List<Node> children;
}
Затем вы можете сделать что-то вроде:
string treeData = "..."; // The JSON data from the POST
JavaScriptSerializer js = new JavaScriptSerializer();
Node root = js.Deserialize<Node>(treeData);
С этим будет намного проще работать в коде.