Javascript的ES6中,希望把一个(JSON格式的)字符串:
{ "currentCowfarmId" : "8a9bfdab5a21ca27015a21d72fb20000", "tokenid": "e0864163789646159096b6949ad8c606", "success": true, "userId": "037ed4ec964a4583b6abb0cd03e237ff", "longinUserType": "0", "cowfarmList": [ 。。。 { "id": "8a9bfdab5a21ca27015a21d72fb20000”, 。。。 "link_man": "xxx" }, 。。。 ] } |
转换为对应的字典变量。
自己先去试了试:
JSON
结果提示:
[eslint] ‘JSON’ is not a function. (no-obj-calls) const JSON: JSON An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format. |
所以换成Object试试,貌似可以:
let userInfoDict = Object(userInfoJson); console.log(userInfoDict); console.log(typeof(userInfoDict)); // alert(userInfoDict); |
输出的是object类型的变量
结果再去输出其中的变量:
let userInfoDict = Object(userInfoJson); console.log(userInfoDict); console.log(typeof(userInfoDict)); // alert(userInfoDict); console.log(userInfoDict.currentCowfarmId); console.log(userInfoDict.cowfarmList); console.log(typeof(userInfoDict.cowfarmList)); |
结果都是未定义:
js ES6 json string to dict
javascript – Convert JS object to JSON string – Stack Overflow
貌似js中没有dict类型的变量?
javascript – In Node.js, how do I turn a string to a json? – Stack Overflow
然后换用:
JSON.parse(yourJsonString);
后:
// let userInfoDict = Object(userInfoJson); let userInfoDict = JSON.parse(userInfoJson); console.log(userInfoDict); console.log(typeof(userInfoDict)); // alert(userInfoDict); console.log(userInfoDict.currentCowfarmId); console.log(userInfoDict.cowfarmList); console.log(typeof(userInfoDict.cowfarmList)); |
结果就正常了,可以获得需要的值了:
【总结】
JS中,通过:
JSON.parse(yourJsonString); |
即可把json格式字符串转换为JSON对象了。
其中,常见的JSON对象,包括{xxx}的字典变量,[x,x,x]的列表变量等等。
注意,此处不论是JSON的dict还是,(JSON中的)dict中的list,typeof出来的类型都是object
转载请注明:在路上 » 【已解决】JS的ES6中如何把json字符串转换为字典变量