关于两者区别:可以直接参考这几位写的
转发自:https://blog.csdn.net/Xxacker/article/details/84949591
JSON(一):JSONObject和JSONArray区别及基本用法
一、JSONObject和JSONArray的数据表示形式
JSONObject的数据是用 { } 来表示的
JSONObject jsonObject =
{ "id" : "123", "courseID" : "huangt-test", "title" : "提交作业", "content" : null }
JSONArray是由JSONObject构成的数组,用 [ { } , { } , … , { } ] 来表示
JSONArray jsonArray3 = [
{ "id" : "123", "courseID" : "huangt-test", "title" : "提交作业" },
{ "content" : null, "beginTime" : 1398873600000 "endTime" }
] ;// 表示了包含2个JSONObject的JSONArray。
一个很明显的区别,一个用的是 { } ,一个最外面用的是 [ ] ;
二、如何将字符串String转换为JSONObject对象和JSONArray对象?
JSONObject jsonObject = new JSONObject ( String str);
JSONArray jsonArray = new JSONArray(String str ) ;
三、如何从JSONArray中获得JSONObject对象?
大家可以把JSONArray当成一般的数组来对待,只是获取的数据内数据的方法不一样
JSONObject jsonObject = (JSONObject)jsonArray.get(i);
JSONObject jsonObject = jsonArray.getJSONObject(i) ;
两者都可。第一种注意转换
四、获取JSON内的数据
int jid= jsonObject.getInt ( "id" ) ; // 这里的jid得到的数据就是123.
String jcourse=jsonObject.getString( " courseID") ; // 这里的jcourse得到的数据就是huangt-test.
Strirng jcourse = jsonObject.get("courseID").toString();
2. https://www.cnblogs.com/xuanbo/p/6913585.html
JSONObject和JSONArray区别及基本用法
一、JSONObject和JSONArray的数据表示形式
JSONObject的数据是用 { } 来表示的,
例如: { "id" : "123", "courseID" : "huangt-test", "title" : "提交作业", "content" : null }
而JSONArray,顾名思义是由JSONObject构成的数组,用 [ { } , { } , ...... , { } ] 来表示
例如: [ { "id" : "123", "courseID" : "huangt-test", "title" : "提交作业" } , { "content" : null, "beginTime" : 1398873600000 "endTime" } ] ;
表示了包含2个JSONObject的JSONArray。
可以看到一个很明显的区别,一个用的是 { } ,一个最外面用的是 [ ] ;
二、如何从字符串String获得JSONObject对象和JSONArray对象
JSONObject jsonObject = new JSONObject ( String str);
JSONArray jsonArray = new JSONArray(String str ) ;
三、如何从JSONArray中获得JSONObject对象
大家可以把JSONArray当成一般的数组来对待,只是获取的数据内数据的方法不一样
JSONObject jsonObject = (JSONObject)jsonArray.get(i);
JSONObject jsonObject = jsonArray.getJSONObject(i) ;
两者都可。第一种注意转换
四、获取JSON内的数据
int jid= jsonObject.getInt ( "id" ) ; // 这里的jid得到的数据就是123.
String jcourse=jsonObject.getString( " courseID") ; // 这里的jcourse得到的数据就是huangt-test.
Strirng jcourse = jsonObject.get("courseID").toString();
五、一般地 为键值对
eg:{ name:"xm", value:"张三"}
String jname = null;
if(jsonObject.get("name").equals("xm")){
jname=jsonObject.get("value").toString();
}
六: JSON.parse( str ) --> 把字符串转为JSON对象
JSON.stringify( obj ) -->把对象解析为字符串
3. 遍历其中的list或者map: https://blog.csdn.net/soicant/article/details/79318181
var list1 = ["number","name"];
var list2 = ["36","Crown","15","Faker","Swift","68","Dandy"];
var map_demo = { name: "John", lang: "JS" };
1.最常用的for循环
for(var i=0;i<list2.length;i++){
console.info(i +":"+ list2 [i]);
}
改进:这里可以将list2.length提出来,不用每次计算长度,效率更高一些,such as:
var len=list2.length;
for(var i=0;i<len;i++){
console.info(i +":"+ list2 [i]);
}
小结:很常见也很常用,效率也不差,但不能遍历map。
2.for...in...遍历List/map
//遍历map
for(var key in map_demo){
console.info(key+":"+map_demo[key]);
}
//遍历List
for(var index in list2){
console.info(index+":"+list2[index]);
}
小结:对于List来说,能不用for...in就不要用,效率低下。
3.forEach遍历List
list2.forEach(function (element, index, array) {
console.info(element); //当前元素的值
console.info(index); //当前下标
console.info(array); //数组本身
});
小结:和for循环效率差不多。
4.$.each()遍历List/map
//遍历List
$.each(list2,function(index,items){
console.info(index+":"+items);
});
//遍历map
$.each(map_demo,function(key,value){
console.info("key: " + key + ", Value: " + value );
})
5.$.map()遍历List/map
//遍历List
var new_list = $.map(list2,function(items,index){
return items+"!";
})
console.info(new_list);
//遍历map
$.map(map_demo,function(key,value){
console.log(key+":"+value);
});
小结:$.map()写法和$.each()类似,但对list的遍历时,参数顺序和$.each()是相反的,并且可以带返回值。对map的遍历和$.each()一样