2017-07-18 87 views
1

我想存在于JSON键反序列化对象VB.NET得到JSON键列表反序列化对象

JSON的样子:

{"key1":1,"key2":2,"key3":3} 

我使用JavaScriptSerializer:

Dim jsonStr As String = "{""key1"":1,""key2"":2,""key3"":3}" 

Dim j As Object = New JavaScriptSerializer().Deserialize(Of Object)(jsonStr) 

Dim jQty As Integer = j.Count 'Count key/value pairs (Return 3) 

现在我想获得j中现有密钥的列表。 我想:

Dim keys As List(Of String) = j.Properties().Select(Function(p) p.Name).ToList() 

但它给了我“System.MissingMemberException:‘找不到'公共成员‘属性’上键入’词典(字符串,对象)”

回答

0

默认情况下,它如错误消息所示,将其反序列化为Dictionary(Of String, Object)对象。因此,你只需要遍历字典条目列表:

For Each entry As KeyValuePair(Of String, Object) In j 
    Console.WriteLine("Key = " & entry.Key) 
    Console.WriteLine("Value = " & entry.Value) 
Next 

或者,如果你只需要键名:

j.Select(Function(entry) entry.Key) 
+0

它的工作PERFECTY!非常感谢你 –