json数组转字符串?js二维数组转字符串
各位老铁们好,相信很多人对json数组转字符串都不是特别的了解,因此呢,今天就来为大家分享下关于json数组转字符串以及js二维数组转字符串的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
如何将json数组转化为json字符串
1、javascript里面的数组都是关联数组吧?
js对象的本质就是关联数组。索引数组也就是常说的数组,数组是对象,所以数组的本质也是关联数组,但通常没人这么说。
2、唯一区别就是:索引数组的索引只能是0和正整数,但它是有序的。关联数组的索引很宽松,但关联数组是无序的,就这个。
3、json对象是严格版本的关联数组。
4、至少在chrome下,索引数组和关联数组的速度是一样的。
5、索引数组的好处就是格式简单,关联数组的好处是键可以任意定义。
现代浏览器中提供了JSON.stringify()方法将数组,对象转成json。
JSON.stringify把一个对象转换成json字符串,
JSON.parse把一个json字符串解析成对象。
不支持的可以引入json2.js
$.fn.stringifyArray= function(array){
return JSON.stringify(array)
}
$.fn.parseArray= function(array){
return JSON.parse(array)
}
然后调用:
$("").stringifyArray(array)
怎么将数组转为json
要使用json来传输数据,必须将所承载的数据转换成json的格式。json的格式如下:
JSON建构于两种结构:
1.“名称/值”对的集合。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组(associative array)。
2.值的有序列表。在大部分语言中,它被理解为数组(array)。
这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。
JSON具有以下这些形式:
1.对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。
例:{"name":"张三","age":20,"birthday":"1982-07-20"}
这是对象在json中的表示形式.即{"key1":"value1","key2":"value2",...}
2.数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
例:["张三","李四","王五"]
这是数组在json中的表示形式.即[value1,value2,value3,....]
3.值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
4.字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
字符串(string)与C或者Java的字符串非常相似。
5.数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。
注:你只要记住前两种形式就可以了。
注意:key一定要用引号,而value如果是字符串,也一定要用引号引起来。切记,有的系统中,只当双引号是有效的,而不认单引号。所以建议用双引号。
更多的格式内容请访问
以上说了json的表示形式,那么现在来看一下它的使用:
因为语言的不同,在action中对json的使用方式也不一样,但思路是一样的,那就是将json转换为对象或数组,我们这里只提及客户端的javascript中json的转换。你使用哪种语言,请参照本语言使用json的方式。
1.首先,在javascript中要获取前端页面中所有输入域的值,保存到数组或一个对象中。
2.将对象或数组转换成JSON格式。有一个js文件能让我们转换起来非常方便,就是prototype.js,导入这个文件后,使用(对象.toJSON())或(数组.toJSON()),这个对象或数组就被保存成为了JSON格式的数据
3.将这个JSON对象传入action中进行处理,然后返回。
4.如果返回的是一个json,那么各户端接收以后需要将json格式的数据转换为javascrip中的对象或数组。同样使用prototype.js,(json对象.evalJSON());好了,这样就转换成js中的对象或数组了。同样你也可以使用javascript中的eval函数进行转换。(eval(json对象)),这两种方式都可以效果是相同的,都是返回的javascript的对象或数组。你现在就可以在客户端的javascript中使用这个对象或数组了
注意:prototype.js与json.js可能会有冲突,建议只使用一种。当然在这里没有介绍json.js的使用,原因是prototype.js的功能已经十分强大,在使用prototype.js时,已经没有必要再使用json.js了
JS解析json数据(怎么将json字符串转化为数组)
<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document</TITLE>
<SCRIPT LANGUAGE="JavaScript">
var t="{'firstName':'cyra','lastName':'richardson','address':{'streetAddress':'1 Microsoft way','city':'Redmond','state':'WA','postalCode': 98052},'phoneNumbers': ['425-777-7777','206-777-7777' ]}";
var jsonobj=eval('('+t+')');
alert(jsonobj.firstName);
alert(jsonobj.lastName);
var t2="[{name:'zhangsan',age:'24'},{name:'lisi',age:'30'},{name:'wangwu',age:'16'},{name:'tianqi',age:'7'}]";
var myobj=eval(t2);
for(var i=0;i<myobj.length;i++){
alert(myobj[i].name);
alert(myobj[i].age);
}
var t3="[['<a href=# onclick=openLink(14113295100,社旗县国税局桥头税务所,14113295100,d6d223892dc94f5bb501d4408a68333d,swjg_dm);>14113295100</a>','社旗县国税局桥头税务所','社旗县城郊乡长江路西段']]";
//通过eval()函数可以将JSON字符串转化为对象
var obj= eval(t3);
for(var i=0;i<obj.length;i++){
for(var j=0;j<obj[i].length;j++){
alert(obj[i][j]);
}
}
/*
//stringifier函数的作用跟 parse相反,用来将一个js对象转换为 JSON文本。
var jsonText= JSON.stringify(obj);
alert(jsonText);
//如果基于安全的考虑的话,最好是使用一个 JSON解析器。一个 JSON解析器将只接受 JSON文本。所以是更安全的。
var myObject= JSON.parse(myJSONtext, filter);
//可选的 filter参数将遍历每一个value key值对,并进行相关的处理。如:
//如
myData= JSON.parse(text, function(key, value){
return key.indexOf('date')>= 0? new Date(value): value;});
//stringifier函数的作用跟 parse相反,用来将一个js对象转换为 JSON文本。
var myJSONText= JSON.stringifier(myObject);
*/
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!