在js中怎么解析JsonObject对象数组

JavaScript017

在js中怎么解析JsonObject对象数组,第1张

js和java中的json对象无法互相转换的吧(用struts2可以),可以在java中将对象转换为json字符串,传到js后,再在js中将json字符串转换成json对象

Java code

Map map1 = new HashMap()

Map map2 = new HashMap()

map1.put("id", 1)

map1.put("name", "张三")

map2.put("id", 2)

map2.put("name","李四")

List list = new ArrayList()

list.add(map1)

list.add(map2)

Map jsonMap = new HashMap()

jsonMap.put("jsonstr",list) //必须是map对象才能转换成json对象

JSONObject json = JSONObject.fromObject(map)//要用到json-lib-2.3-jdk15.jar

return json.toString()

记得引入json.js

JScript code

UserAction.getUser(function(result) { var jsonResult = JSON.parse(result)//如何不行用var jsonResult=JSON.parseJSON(),json版本问题 var resultList = jsonResult['jsonstr']for(var one in resultList){ var item= resultList[one]alert(item.id)alert(item.name)}

声明创建一个数组对象: var arr = new Array() 或者 var arr = []

连接两个或者多个数组,并且返回该数组,语法: array.concat(object,object,......)

通过指定字符(参数)对数据进行分割,返回字符串,参数省略的话则用默认用逗号为分隔符

删除数组的最后一个对象,返回该删除元素的值

向数组末尾添加一个或者多个对象,语法: array.push(newObject1,newObject2,.....)

删除数组的第一个对象,并返回删除的元素

向数组开头添加一个或者多个元素,并返回新的长度

从已知数组中返回指定选中的数据(不包括end 对应的元素),如果省略 end 将复制 start 之后的所有元素,该操作不会修改原数组的数据, slice(start,end)

向数组中删除/添加对象,并返回被删除的元素

splice(index,count,item1,item2,......)

方法用户对数组的排序, sort(sortby) ,sortby可选,必须是函数。如调用方法没有使用参数,则按字母顺序进行排序。

只要有一个满足的就返回true,没有满足的返回false

验证数组中是否每个元素都满足指定的条件

没有返回值,可以不知道数组长度

arr.forEach(function(res,index){ })

返回值组成新数组,原数组不变

过滤通过条件的元素组成一个新数组,原数组不变

查找出第一个符合条件的数组成员,并返回该成员,如果没有找到就返回undefine

找到的是位置,找不到返回 -1

填充, arr.fill(填充的东西,start,end) 包括end

因为无论是数组还是对象,对于typeof的操作返回值都为object,所以就有了区分数组类型和对象类型的需要:

方一:通过length属性:一般情况下对象没有length属性值,其值为undefiend,而数组的length值为number类型

缺点:非常不实用,当对象的属性存在length,且其值为number(比如类数组),则该方法失效,不建议使用,看看即可。

*方二:通过instanceof来判断区分

var arr = [1, 2, 3] var obj = {name: 'lyl',age: 18,1: 'name'}console.log(arr instanceof Array)//trueconsole.log(obj instanceof Array)//false

*方三:通过constructor

var arr = [1, 2, 3] var obj = {name: 'lyl',age: 18,1: 'name'}console.log(arr.constructor === Array)//trueconsole.log(obj.constructor === Array)//false