Home  >  Article  >  Web Front-end  >  Sharing of jQuery JSON parsing methods_jquery

Sharing of jQuery JSON parsing methods_jquery

WBOY
WBOYOriginal
2016-05-16 18:08:42808browse

After the problem was solved, I roughly understood what it meant. In the final analysis, there was still a deviation in jquery's understanding of obtaining related json objects.
What is considered here is that the server returns a JSON string. For JSON objects encapsulated by plug-ins such as JSONObject, the same is true and will not be explained here.
The JSON string set is first given here. The string set is as follows:
The code is as follows:

Copy code Code As follows:

var data="
{
root:
[
{name:'1',value:'0'},
{name :'6101',value:'Xi'an City'},
{name:'6102',value:'Tongchuan City'},
{name:'6103',value:'Baoji City'},
{name:'6104',value:'Xianyang City'},
{name:'6105',value:'Weinan City'},
{name:'6106',value:'Yan'an City '},
{name:'6107',value:'Hanzhong City'},
{name:'6108',value:'Yulin City'},
{name:'6109',value :'Ankang City'},
{name:'6110',value:'Shangluo City'}
]
}";

The data obtained asynchronously with jquery Based on the type - json object and string, the result processing methods obtained by the two methods are introduced respectively.
1. For the JSON string returned by the server, if the jquery asynchronous request does not have a type description, or is accepted as a string, then it needs to be objectified. The method is not too troublesome, that is, put the string in eval () is executed once. This method is also suitable for obtaining json objects in the ordinary javascipt method. The following is an example:
Copy code The code is as follows:

var dataObj=eval("(" data ")");//Convert to json object
alert(dataObj.root.length);//Output the number of child objects of root
$. each(dataObj.root,fucntion(idx,item){
if(idx==0){
return true;
}
//Output the name and value of each root sub-object
alert("name:" item.name ",value:" item.value);
})

Note: For general js to generate json objects, only $. Just replace the each() method with a for statement, and leave everything else unchanged.
2. For the JSON string returned by the server, if the jquery asynchronous request sets the type (usually this configuration attribute) to "json", or uses the $.getJSON() method to obtain the server return, then there is no need to eval ( ) method, because the result obtained at this time is already a json object, you only need to call the object directly. Here, the $.getJSON method is used as an example to illustrate the data processing method:
What needs special attention here is that in method 1 The eval() method dynamically executes the string (possibly a js script), which can easily cause system security issues. Therefore, you can use some third-party client script libraries that circumvent eval(). For example, JSON in JavaScript provides a script library of no more than 3k.
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn