Как преобразовать данные json в массив C#.? - PullRequest
0 голосов
/ 08 мая 2020
{
"shapes":[{"id":"A","cursor":"pointer","visual":null,"x":69.25,"y":50},{"name":"Right"},{"name":"Auto"}],"width":10,"height":10},"undoable":true},
{"id":"B","cursor":"pointer","visual":null,"x":69.25,"y":50},{"name":"Right"},{"name":"Auto"}],"width":10,"height":10},"undoable":true}],
"connections":[{"id":"8Op6PApGWW","selectable":true,"serializable":true,"from":{"shapeId":"A"},"toX":null,"toY":null,"to":{"shapeId":"B"}}]
},

Это мои json данные. Теперь мне нужно десериализовать их и получить идентификатор фигур, а также соединения с идентификаторами.

Я пробовал вот так.

string jsonString = Diagram.ResponseData.diagram;
JObject jsondata = (JObject)JsonConvert.DeserializeObject(jsonString);

Но я получаю что-то First, Last, Child эти свойства.

Мне нужны фигуры типа jsondata [0] и соединения второго индекса, чтобы я мог получить доступ к свойствам этих ...

1 Ответ

1 голос
/ 08 мая 2020

Опубликованный вами пример JSON недействителен JSON. Предполагая, что это опечатка, тогда ...

В настоящее время вы создаете JObject из своего JSON. Если вам нужен массив, вам нужно десериализовать как объект, который содержит массив (судя по вашему примеру данных).

Сначала вам нужно будет создать классы, которые соответствуют вашему входу JSON. Вы можете сделать это, вставив свой (действительный) JSON в Visual Studio как Edit -> Paste Special -> Paste JSON as classes (сначала создайте новый класс).

Это должно создать Root объект с вашими внутренними данными внутри. Затем вы можете десериализовать так

RootObject root = JsonConvert.DeserializeObject<RootObject>(jsonString);
var shapeArray = root.Shapes;
...