php 拼接json字符串,Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)...

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

一、JSON字符串转换为JSON对象: eval() 和 JSON.parse

eg- json字符串:var data = '{ "name": "dran", "sex": "man" }';

var obj = eval("("+data+")"); 或者

var obj = JSON.parse(data);

然后,就可以这样读取: alert(obj.name + obj.sex);

提示:为什么要 eval这里要添加 ("("+data+")");呢?

原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。

加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句

二、JSON对象转换为JSON字符串 : obj.toJSONString()或者全局方法JSON.stringify(obj) (obj代表json对象)eg-json对象: var obj = { "name": "dran", "sex": "man" };

var jstring = JSON.stringify(obj) ;// 建议用这个

var jstring = obj.toJSONString(); //toJSONString()不是js原生的方法,需要引入相应的库或自己定义后才能用 (不习惯用)

然后,就可以这样读取: alert(jstring);

注意:

目前,Firefox、Opera、IE8以上版本也提供了本地JSON支持。其中,JSON解释器提供的函数有:JSON.parse、JSON.stringify。   对于那些并不提供本地JSON支持的浏览器可以引入脚本json2.js,来实现JSON转换功能。json2.js脚本可到https://github.com/douglascrockford/JSON-js/blob/master/json2.js页面下载

在AJAX实现前后台数据交互的时候,通常使用JSON的数据格式,对于JSON来说,有严格的代码规范,一旦格式出问题,就无法显示出相应效果,同时还不在控制台报错

补充: ajax读取json数据拼接显示:

json文件:{

"first":[

{"name":"张三","sex":"男","like":["吃饭","睡觉","打豆豆"]},

{"name":"李四","sex":"男"},

{"name":"王武","sex":"男"},

{"name":"李梅","sex":"女"},

],

"second":[

{"name":"上海大学","area":"上海"},

{"name":"武汉大学","area":"武汉"},

{"name":"北京大学","area":"北京"},

{"name":"山东大学","area":"山东"},

]

}

html和ajax代码

1、用for循环$.ajax({

url : "ceshi.json",

type : "POST",

dataType :"text", //浏览器把json文件当作文本文件 不然读取不出来 权宜之策就改成了text, 因为测试, json文件格式正确书写

success: function(data) {

var dataJson = eval("("+data+")"); // 将json字符串数据解析成对象

var arr1 = dataJson.first;

var arr2 = dataJson.second;

//一栏显示 用for循环完成数组解析

for(var i = 0; i

for(var j = 0; j

var str='

'+

'

姓名:'+arr1[i].name+' 性别:'+arr1[i].sex+'
'+

'

学校:'+arr2[j].name+'
'+

'

地点:'+arr2[j].area+'
'+

//'

喜好:'+arr1[i].like+'
'+ //全显示

//'

喜好:'+arr1[i].like[1]+'
'+ //单独设置

//'

喜好:'+arr1[i].like[0]+'
'+

'

';

}

$(".result").append(str);

}

//分层显示

//var str = "";

// var str1 = "";

// if (arr1 != null) {

// for (var i = 0; i < arr1.length; i++) { //这里面都是创建并赋值

// str += "" + arr1[i].name + "" + arr1[i].sex + "
";

// }

// $(".result").html(str);

// }

// if (arr2 != null) {

// for (var j = 0; j < arr2.length; j++) {

// str1 += "" + arr2[j].name + "" + arr2[j].area+ "
";

// }

// $(".result2").html(str1);

// }

},

error:function(data){

alert("error");

}

})

frist:
second:

for

2、 each循环 使用$.each方法遍历返回的数据date,插入到class为 .result中

JSON:[

{"name":"张三","sex":"男","like":["吃饭","睡觉","打豆豆"]},

{"name":"李四","sex":"男"},

{"name":"王武","sex":"男"},

{"name":"李梅","sex":"女"},

]

$.ajax({

url : "ceshi.json",

type : "POST",

dataType :"text", //浏览器把json文件当作文本文件 不然读取不出来 权宜之策就改成了text, 因为测试, json文件格式正确书写

success: function(data) {

var dataJson = eval("("+data+")"); // 将json字符串数据解析成对象

//each循环 使用$.each方法遍历返回的数据date,插入到class为 .result中 i 表示索引 item 信息值 对象

$.each(dataJson,function(i,item){

var str='

'+

'

姓名:'+item.name+' 性别:'+item.sex+'
'+

'

like:'+item.like+'
'+

'

';

$(".result").append(str);

})

},

error:function(data){

alert("error");

}

})

each

PS:对于一般的js生成json对象,只需要将$.each()方法替换为for语句即可,其他不变

JSON 数据使用方法://json对象:

var jsonObj= {

"name":" 张三",

"sex":"男",

"age":26,

};

使用: jsonObj.name= "张三"

jsonObj.age= "26"

//json数组: []下标 从 0 开始

var jsonArr =[

{"name":"张三","sex":"男","like":["吃饭","睡觉","打豆豆"]},

{"name":"李四","sex":"男"},

{"name":"王武","sex":"男"},

]

使用: jsonArr[0].sex="男"

jsonArr[1].name="李四"

//多个数组: []下标 从 0 开始

var options = {

"city" :[

{

"name":"上海",

"area":"普陀区",

"option":"真北路",

"correct":"1"

},

{

"name":"石家庄",

"area":"河北",

"option":"在北方",

"correct":"2"

}],

"world":[

{

"title":"美国",

"content":"好莱坞大片 科幻"

},

{

"title":"中国",

"content":"爱我中华,虽远必诛"

}

]

};

options.city[0].area="普陀区"

options.world[1].content="爱我中华,虽远必诛

以上所述是小编给大家介绍的Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对PHP中文网的支持!

更多Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)相关文章请关注PHP中文网!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值