2

JSONかみそりのWebヘルパー(http://msdn.microsoft.com/en-us/library/gg538324%28v=vs.111%29.aspx)を使用して、複数のネストされたノードを持つJSON文字列をデコードしています。

別のプロジェクトでJSON.Decodeメソッドを正常に使用しましたが、このプロジェクトでは、JSONソース文字列に数値で始まるネストされたノードがあり、問題が発生しています。

私のJSON文字列は次のようになります

myJSONString="
{
Foo1: ‘data’,
‘Foo2:’  {
    ‘123':{
        ‘goodStuff’:{ [
                    {
                      boo1: ‘Data1’,
                      boo2: ‘Data2’
                    }
                    ] }
          }
         }
}   "

通常、私は次のことを行います。

var decodedJsonString = Json.Decode(myJSONString) <br> 

次のようなデータにアクセスします。

foreach(var p in decodedJsonString.Foo2.123.goodStuff)
{ 
   p.boo1; <br>
   p.boo2; <br>
} 


通常、これは問題なく機能しましたが、 .123 が気に入らないというエラーが表示されます。一部、ノードは文字ではなく数字で始まるため。インラインエラーは「識別子が必要です」です。Webページを実行すると、サーバーエラーは次のようになります: ")期待される"。

助言がありますか?ありがとうございました!

次のような多くのforeachループを使用することで、これを回避できます。

foreach( var p in decodedJsonString.Foo2)
{ 
   var k = p.Value;
   if(p.Key.Equals("123"))
  {
    foreach(var j in k)
    {
     //etc
    }
  }
}

これをデコードされたJSONオブジェクトにする方法がわからないので、decodeJsonString.Foo2.123.goodStuffのように再度参照できます。

どんな援助にも感謝します。明らかな何かが欠けている場合は申し訳ありません!ありがとうございました。

4

1 に答える 1

0

あなたはこれを試すことができます:

foreach(var p in decodedJsonString.Foo2['123'].goodStuff)
于 2013-03-26T15:29:26.443 に答える