三种方法都可以将json对象转化成json字符串
注意 json字符串和json对象的key都要用双引号括起来 value看情况 value可取的值包括 数值型,字符串"",数组[],对象...
json数组
什么是json对象
var jsonObject={"name":"zhangsan","age":22};//创建json对象
alert(jsonObject.name+";"+jsonObject.age);//引用json对象中的子元素
什么是json字符串(一共有两种写法)
第一种写法(转义 " )(推荐)
var jsonString="{"name":"zhangsan","age":22}";
将该json字符串转化成json对象(为什么要转化?为了要遍历json对象中的子元素)
var person= eval("("+jsonStringr+")");
eval()方法解析
eval()方法:eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
例子
var sum="1+2"; alert(eval(sum));
第二种写法(单引号中嵌入双引号)
var jsonString='{"name":"zhangsan","age":22}';
将该json字符串转化成json对象
var person=JSON.parse(jsonSrtring);
var person=$.parseJSON(jsonSrtring); //jquery提供的方法 使用时需提供js文件
jqeury中 $.ajax(url,postdata,function(data){})
url-->字符串类型"a.jsp"
postdata-->key/value 形式 会自动转换成请求字符串的格式 所以不必关心
{name:"zhagsan",age:18}
{'name':"zhagsan",'age':18}
{"name":"zhagsan","age":18}
请求成功之后的回调函数
function(data)
data-->
data could be xmlDoc, json, html, text, etc...
其中返回的json一定是json字符串 {"name":"zhangsan","age":15}这种形式
如果指定了dataType:json 或getJson 就能直接获取json对象(自动将json字符串->json对象)----- data.name data.age
否则 需eval("("+data+")")转化(不常用)