我试图解析来自XBMC的传入JSON(Eden Beta v3),XBMC的示例字符串如下:
{"jsonrpc":"2.0","method":"Player.OnPlay","params":{"data":{"item":{"type":"movie"},"player":{"playerid":1,"speed":1},"title":""},"sender":"xbmc"}}
我正在使用https://github.com/douglascrockford/JSON-js/blob/master/json2.js中的json2.js来为我的应用程序提供JSON.parse和JSON.stringify函数。
我在我的代码中使用了解析函数,就像这样
var temp = JSON.parse(data);
哪个适用于前两个属性,“jsonrpc”和“method”...所以我可以访问这样的
temp.method
返回“Player.OnPlay”
temp.jsonrpc
返回“2.0”
但是,如果你查看XBMC发送的字符串,它还包含它们称为“扩展参数”或“参数”的内容,我似乎无法追踪JSON解析器对其余消息的处理方式或者我如何以与前两个属性类似的方式访问它们。如果我试试
params = temp.params
或访问params属性的任何其他方式,我得到一个未定义的错误,因为JSON对象中没有这样的属性...我希望这很清楚,有人可以帮助我。将提供所需的任何额外信息......
由于
答案 0 :(得分:1)
JSON数据中params
的值是一个对象,因此您必须访问该子属性。
temp.jsonrpc
temp.method
temp.params["data"]["item"]["type"]
temp.params["data"]["player"]["playerid"]
temp.params["data"]["player"]["speed"]
temp.params["data"]["item"]["title"]
temp.params["sender"]