2017-07-18 8 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 

それとも、あなただけのキー名が必要な場合:それはPERFECTY仕事

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

を!どうもありがとうございました –

関連する問題