㈠ json字符串怎转换成json对象
public@ResponseBodyMap<String,String>categor(){
Map<String,String>data=newHashMap<String,String>();
List<ProctCategory>list=proctCategoryService.findRoots();
JsonConfigjsonConfig=newJsonConfig();
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
jsonConfig.setExcludes(newString[]{//只要设置这个数组,指定过滤哪些字段。
"children",
"procts",
"brands",
"parameterGroups",
"promotions",
"attributes"
});
JSONArrayjsonObjectFromMap=JSONArray.fromObject(list,jsonConfig);
data.put("rootProctCategories",jsonObjectFromMap.toString());
returndata;
}
(1)json与json对象扩展阅读
JSON对象是直接可以使用JQuery操作的格式,如C#中可以用对象(类名)点出属性(方法)一样
JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据,不能直接使用,除非你只想alert()他;
㈡ json在javascript中是字符串还是对象
JSON是字符串。
JSON是JS对象的字符串表示法,它使用文本表示一个JS对象的信息,本质是一个字符串。
JSON是基于文本字符串(相对于二进制)的文档格式,和HTML、XML类似。在很多情况下,JSON可以用来描述特定数据结构的实例。
(2)json与json对象扩展阅读
JSON对象和JSON字符串的转换
数据传输过程中,JSON是以字符串的形式传递,而JS操作的是JSON对象。所以,JSON对象和JSON字符串之间的相互转换是关键。例如:
JSON字符串:var jsonStr ='{"name":"Liza", "password":"123"}' ;
JSON对象:var jsonObj = {"name":"Liza", "password":"123"};
1、JSON字符串转化JSON对象
var jsonObject= jQuery.parseJSON(jsonstr);
2、JSON对象转化JSON字符串
var jsonstr =JSON.stringify(jsonObject );
㈢ json对象和json数组和数组的区别
JSON对象:
var
status_process
=
{
"
name5"
:
'闲置期',
"name1"
:
'播种期',
"name2"
:
'苗期',
"name3"
:
'生长期',
"name4"
:
'采收期'}
alert(status_process["name5"]);alert(status_process.name5);//
两个都为:闲置期
数组:
var
ourcountry=[["北京市"],["上海市"],["合肥市","芜湖市","蚌埠市"]];
//
数组alert(ourcountry[2][1]);
JSON数组的操作:
1.定义
var
josnArry=[];
2.添加
jsonArry.push(jsonObj);
3.删除
delete
jsonArry[0];splice(index,length):
4.循环访问数组
a.jquery
$.each(jsonArry,function(index,item){
var
userId=item.userId;
});
b.一般方式
for(var
i=0;i<jsonArry.length;i++){
var
userId=jsonArry[i].userId;
}
c.特殊方法
for(var
item
in
jsonArry){
var
userId=jsonArry[item].userId;//注意:此处的item不是数组项,而是数组项的索引}
JSON对象遍历
myJson
=
{"name":"ji",
"password":"123"};for(var
p
in
myJson){//遍历json对象的每个key/value对,p为key
alert(p
+
"
"
+
myJson[p]);}
㈣ 前端js把json字符串转json对象 java对象转json对象命令
最近在逛编程问题解答的时候,看到这样的提问:如何将一个JSON数组类型的字符串转换为JSON数组,然后遍历数组取出JSON对象,最后在JS中取出里面的属性。在这里给同样有疑问的朋友做下解答,
首先我们追本溯源问一下,JSON究竟是什么东西?为什么JSON就是易于数据交换?本文将从以下几个方面去理解JSON:
首先是对“JSON是一种轻量的数据交换格式”的理解;
然后来看经常被混为一谈的JSON和JS对象的区别;
json字符串转换成json数组并遍历属性值;
什么是JSON? JSON是一种轻量级的数据交换格式。
如果没有去过JSON的官方介绍可以去一下这里,官方介绍已经很清楚地表述了JSON是什么,我将JSON是什么提炼成以下几个方面:
1. 一种数据格式
什么是格式?就是规范你的数据要怎么表示,举个栗子,有个人叫“二百六”,身高“160cm”,体重“60kg”,现在你要将这个人的这些信息传给别人或者别的什么东西,你有很多种选择:
以上所有选择,传递的数据是一样的,但是你可以看到形式是可以各式各样的,这就是各种不同格式化后的数据,JSON是其中一种表示方式。
2. 基于文本的数据格式
JSON是基于文本的数据格式,相对于基于二进制的数据,所以JSON在传递的唤老时候是传启宏递符合JSON这种格式(至于JSON的格式是什么我们第二部分再说)的字符串,我们常会称为“JSON字符串”。
3. 轻量级的数据格式
在JSON之前,有一个数据格式叫xml,现在还是广泛在用,但是JSON更加轻量,如xml需要用到很多标签,像上面的例子中,你可以明显看到xml格式的数据中标签本身占据了很多空间,而JSON比较轻量,即相同数据,以JSON的格式占据的带宽更小,这在有大量数据请求和传递的情况下是有明显优势的。
4. 被广泛地用于数据交换
轻量已经是一个用于数据交换的优势了,但更重要的JSON是易于阅读、编写和机器解析的,即这个JSON对人和机器都是友好的,而且又轻,独立于语言(因为是基于文本的),所以JSON被广泛用于数据交换。
以前端JS进行ajax的POST请求为例,后端PHP处理请求为例:
可以看到,相同的数据在这里有3种不同的表现形式,分别是前端的JS对象、传输的JSON字符串、后端的PHP对象,JS对象和PHP对象明显不是一个东西,但是由于大家用的都是JSON来传递数据,大家都能理解这种数据格式,都能把JSON这种数据格式很容易地转化为自己能理解的数据结构,这就方便啦,在其他各种语言环境中交换数据都是如此。
经常被混为一谈的JSON和JS对象很多时候都听到“JSON是JS的一个子集”这句话,而且这句话我曾经也一直这么认为,每个符合JSON格式的字符串你解析成js都是可以的,直到后来发现了一个奇奇怪怪的东西…
1. 两个本质不同的东西为什么那么密切
JSON和JS对象本质上完全不是同一个东西,就像“斑马线”和“斑马”,“斑马线”基于“斑马”身上的条纹来呈现和命名,但是斑马是活的,斑马线是非生物。
同样,”JSON”全名”JavaScript Object Notation”,所以它的格式(语法)是基于JS的,但它就是一种格式,而JS对象是一个实例,是存在于内存的一个东西。
说句玩笑话,如果JSON是基于PHP的,可能就叫PON了,形式可能就是这样的了[‘propertyOne’ => ‘foo’, ‘propertyTwo’ => 42,],如果这样,那么JSON可能现在是和PHP比较密切了。
此外,JSON是可以传输的,因为它是文本格式,但是JS对象是没办法传输的,在语法上,JSON也会更加严格,但是JS对象就很松了。
那么两个不同的东西为什么那么密切,因为JSON毕竟是从JS中演变出来的,语法相近。
2. JSON格式别JS对象语法表现上严格在哪
先就以“键值对为表现的对象”形式上,对比下两者的不同,至于JSON还能以怎样的形式表现,对比完后再罗列。
可以看到,相对于JS对象,JSON的格式更严格,所以和旁升大部分写的JS对象是不符合JSON的格式的。
json字符串转换成json数组并遍历属性值方式一:使用Iterator迭代器遍历取值
方法二:使用for循环