如果这是一次返回的json,那么你要分成3级显示,就需要分3级显示的不同点在那里
观察了你的json数据,json的字段都是相同的,因此想通过字段不同加以区别行不通,但是我看到你json字符串中有一个parentId,而且每一个的parentId都是不一样,我想你可以通过这个加以区分:
if(parentId == "1001"){ alert("学段") } if(parentId == "1002"){ alert("学科") } if(parentId == "1003"){ alert("版本") }
如果要使用js读取json文件,那么ajax *** 作是必须的了。原生ajax有点麻烦,我想你们项目一定用了什么js库,这里给个jquery的例子:
$get('xxjson路径', function(data){alert(data); // data即为json文件内容里的json数据
}, 'json');
如果把这个文件的内容读取为纯文本,可以修改$get的最后一个参数json为text,或者删掉这个参数,默认也是text。
通过 JSONparse 将你的 JsonInfo 的字符串类型的变量转为 js 对象:var jsonObj = JSONparse(jsonStr);
看到 json 字符串里的中括号了没有?这个对象名为 sites 的 key 对应的 value 是一个数组,也就是 sites[0],sites[1]你可以理解为 jsonObj 的 sites 就是一个数组名,所以也就具备了 length 这个属性。
接着可以循环这个数组,找出数组中的对象的 title 属性为"数量"的那个数组对象即可。
别说什么就没有看懂网上的资料,不知道你认真看了没有。认真看不可能看不懂的,一遍不行看两遍,两遍不行看三遍。就是把一个普通的对象换成了数组,就不认识了吗。
var jsonStr = '{"sites":
[
{"title":"数量", "ReadOnly":"true"},
{"title":"单位", "ReadOnly":"false"}
] }';
function getReadOnly() {
var jsonObj = JSONparse(jsonStr);
var amountReadOnly;
var sitesLength = jsonObjsiteslength;
for (var i = 0; i < sitesLength; i++) {
if (jsonObjsites[i]title === "数量") {
amountReadOnly = jsonObjsites[i]ReadOnly;
break;
}
}
return amountReadOnly;
}
getReadOnly();
JSON 一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。(现在公司大部分都用这个)。 json的表示方式:{"city":"Beijing","street":" Chaoyang Road ","postcode":100025} ,这就是个简单的json对象。实际上此处的 json对象相当于 Java 中的 Map<String, Object>。注意 Key 只能用 String 表示。
其中 Value 也可以是另一个 Object 或者数组,因此,复杂的 Object 可以嵌套表示,例如,一个 Person 对象包含 name 和 address 对象,可以表示如下:
{"name":"Michael","address":
{"city":"Beijing","street":" Chaoyang Road ","postcode":100025}
}
</SPAN>
</SPAN>JavaScript 处理 JSON 数据
function handleJson() {
var j={"name":"Michael","address":
{"city":"Beijing","street":" Chaoyang Road ","postcode":100025}
};
documentwrite(jname);
documentwrite(jaddresscity);
}
现在一般在后台用gson将数据转换成json对象,前台用jquery的ajax与后台的数据进行交互。具体咋用网上有很多实例,如果实在不懂得话,加我的qq:1249119842
//构建一个json对象
var pinpai = {
"0":{"美的":49,"三星":35,"海信":25,"格力":16,"方太":14},
"1":{"美的":49,"三星":35,"海信":25,"格力":16,"方太":14}
};
jiage = pinpai[0]['美的'];
源:
//构建一个json对象
var jb={"美的":49,"三星":35,"海信":25,"格力":16,"方太":14};
for(var key in jb){
alert(key); //json对象的key
alert(jb[key]); //json对象的值
}
方法有很多,简单说两种吧(假设你要检测有没有key为name的):
// 第一种var json = {name: '小传君', age: 18};
alert(jsonhasOwnProperty('name'))
// 第二种
var isKey = false;
for (var i in json) {
if (i == 'name') {
isKey = true;
break;
}
}
// 希望能帮到你
以上就是关于js 中如何筛选符合条件的多层嵌套的json里面的某个key值全部的内容,包括:js 中如何筛选符合条件的多层嵌套的json里面的某个key值、js 读取 json文件、如何用js取值json的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)