我正在研究嵌入式系统,我的整个过程理论遵循以下方法: 1.向后端发送命令,询问JSON格式的帐户信息。 2.后端写入一个包含所有帐户和相关信息的JSON文件(可能有0到16个帐户)。 3.这就是我遇到的问题 - 使用JavaScript(我们使用JQuery库)迭代特定元素(类似于XPath)的返回信息,并根据填充下拉列表的元素数量构建数组框以选择您要查看的帐户,然后使用帐户信息执行操作。 所以我的代码看起来像这样:
loadAccounts = function()
{
$.getJSON('/info?q=voip.accounts[]', function(result)
{
var sipAcnts = $("#sipacnts");
$(sipAcnts).empty(); // empty the dropdown (if necessarry)
// Get the 'label' element and stick it in an array
// build the array and append it to the sipAcnts dropdown
// use array index to ref the accounts info and do stuff with it
}
所以我需要的是用于构建voip.accounts.label数组的XPath的JSON版本。 第一个帐户信息如下所示:
{
"result_set": {
"voip.accounts[0]": {
"label": "Dispatch1",
"enabled": true,
"user": "1234",
"name": "Jane Doe",
"type": "sip",
"sip": {
"lots and lots of stuff":
},
}
}
}
我是否使问题复杂化?任何人都可以抛弃的任何智慧将不胜感激。
答案 0 :(得分:1)
有几种选择。一种是使用JsonPath创建的this guy。它打算成为JSON的XPath。我不知道它的效果如何。它当然不是标准化的。虽然这不是很多代码,但它应该易于理解和适应。另一种方法是使用JPath。这两个都来自json.org。我不怀疑还有更多这样的实现。
另一个选项是将JSON转换为javascript对象,并在内容中搜索对象属性,直到找到所需内容。你可以用例如Douglas Crockford的JSON parser。