2

我正在使用 JSON razor 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。部分,因为节点以数字而不是字母开头。内联错误是“预期标识符”。如果我运行网页,服务器错误是它:“)预期”。

有什么建议么?谢谢!

我可以通过使用很多 foreach 循环来解决这个问题,例如:

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

只是不知道如何使它成为一个解码的 JSON 对象,我可以像 decodedJsonString.Foo2.123.goodStuff 一样再次引用它

感谢任何帮助。对不起,如果我遗漏了一些明显的东西!再次感谢你。

4

1 回答 1

0

你可以试试这个:

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