2016-01-17 1 views
0

Я использую Newtonsoft.Json здесь (http://www.newtonsoft.com/json) в Visual Basic программы в визуальной студии 2015.VB: Как получить все ключи, данные Newtonsoft.Json.Linq.JObject

Dim jObject As Newtonsoft.Json.Linq.JObject = Newtonsoft.Json.Linq.JObject.Parse(jsonString) 

jsonString является:

{ 
    "total": 2, 
    "0":{ 
     "name": "component 0", 
     "primary": "R" 
    }, 
    "1":{ 
     "name": "component 1", 
     "primary": "C" 
    } 
} 

Как получить все ключи суб-словарей от jObject (в данном случае: «0» и «1»)?

Кстати, есть ли хорошие документы API для newtonsoft в VB? В C# так много, но немного в VB. трудно использовать их в моей программе. Благодарю.

+0

проблема заключается в том, что «всего» в той же коллекции, как «0» и «1» – Plutonix

+1

@Plutonix, как получить «общее», «0», «1» ??? есть ли хорошие документы API для newtonsoft в VB? – BAE

+0

Используйте ответ опубликован (исправить опечатки), затем 'Dim keys = myObj.Keys', чтобы получить эти ключи – Plutonix

ответ

1

Поскольку объект, который вы пытаетесь десериализовать, строго не типизирован, я думаю, что ваши варианты ограничены.

Вы можете десериализовать словарь (строки, объекта).

Dim myObj as Dictionary(of string, object) 
myObj = JsonConvert.DeserializeObject(of Dictionary(of string, object))(json) 

Если у вас есть какой-либо контроль над JSON и может сделать эти элементы (не элемент «общий») свой собственный массив, то вы можете создать класс для десериализации в.

Было бы лучше видеть ниже, если бы у вас была возможность настроить этот json (за комментарий от @BAE).

{ 
    "total": 2, 
    "Items": [ 
    "0":{ 
     "name": "component 0", 
     "primary": "R" 
    }, 
    "1":{ 
     "name": "component 1", 
     "primary": "C" 
    }] 
} 
+0

Спасибо, но есть ли хорошие документы API для newtonsoft в VB? Трудно их использовать до того, как я нашел более полезные документы. – BAE

+0

Я их не нашел, но я не против использовать их документы C#, а затем просто вставлять в [telerik] (http://converter.telerik.com/) если он должен быть доступен для чтения в формате vb. – bri

+0

спасибо, я попробую. – BAE