2016-12-07 11 views
0

Мой первый метод преобразования входных данных возвращает JSON, а его тип - строка. Возвратная строка выглядит так:Поиск C# в массиве данных JSON

[{ 
    "coordinates": [102.5, 24.123], 
    "type": "Point", 
    "properties": { 
     "tsu": "", 
     "name": "china: yunnan province; vietnam: hanoi", 
     "yyyymmdd": "19700104" 
    } 
}, { 
    "coordinates": [-73.7955, -51.943], 
    "type": "Point", 
    "properties": { 
     "tsu": "tsu", 
     "name": "s. chile", 
     "yyyymmdd": "19700614" 
    } 
}, { 
    "coordinates": [28.745, 39.18], 
    "type": "Point", 
    "properties": { 
     "tsu": "", 
     "name": "turkey: demirci, manisa", 
     "yyyymmdd": "19700423" 
    } 
}] 

Как получить доступ к данным, хранящимся в этом виде строки?

+4

Похоже на JSON, вы отметили его JSON, поэтому, возможно, вам следует использовать библиотеку JSON, такую ​​как json.net. –

+0

Пожалуйста, прочитайте [ask]. Ключевые фразы: «Поиск и исследование» и «Объясните ... любые трудности, которые мешали вам самим решить». –

+0

Пожалуйста, не используйте «спасибо за преимущество», «спасибо за консультацию» или «спасибо заранее» на этом сайте. –

ответ

1

Использование Json.Net. Очень легко сериализовать и десериализовать любой объект .NET.

http://www.newtonsoft.com/json

+1

Да. Также доступен как пакет NuGet. – EJoshuaS

3

Шаг 0: Исправьте опечатку в вашей JSON строку (я редактировал свой пост, чтобы сделать это для вас).

Шаг 1: Перейдите к json2csharp, введите свой JSON и дайте ему сгенерировать классы для вас.

Шаг 2: Установите Json.Net из NuGet.

Шаг 3: Написать var root = JsonConvert.DeserializeObject<RootObject>(myJsonString);

Шаг 4: Используйте объект, как и любой другой объект в C#.

+0

или вы можете dersialize для динамического – pm100

+0

@ pm100, очень верно. Я предпочитаю десериализацию в строго типизированные классы, поскольку она обеспечивает проверку intellisense и компиляции, но YMMV. –

+0

иногда каждый объект json имеет другую схему, в этом случае вам нужна динамическая – pm100