js 中如何筛选符合条件的多层嵌套的json里面的某个key值

js 中如何筛选符合条件的多层嵌套的json里面的某个key值,第1张

如果这是一次返回的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的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9555677.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存