怎么想向json数组中添加json数据

怎么想向json数组中添加json数据,第1张

JSON(JavaScript Object Notation )是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,JSON是JavaScript原生数据格式。

下面给大家介绍js数组添加json数据的两种方式。

// 第一种方式

personInfo

: [],

for(var i = 0i <_STAGE.passengerInfoArray.lengthi++){

var name = _STAGE.passengerInfoArray[i]

var person = {v:name, text:name}

this.personInfo.push(person)

}

// 第二种方式

var passengerInfo = {}

passengerInfo.psgTypeDesc = psgTypeDesc

passengerInfo.flightPrice = flightPrice

_STAGE.passengerInfoArray.push(passengerInfo)

js数组与 json 的区别

一,数组

1. 定义一维数组:var s1=new Array()

s1=[1,2,3,4]或者s1[0]=1,s1[1]=2,s1[3]=3,s1[4]=4

alert(s1[0])

结果为1;

2,,定义二维素组:var s1=new Array()

var s1=[[3,1],[2,3,4],3,[4,5,6,7,8]]

alert(s1[1][0])

结果为2;

二,定义json对象

1,json对象

var status_process = {

" name5" : '闲置期',

"name1" : '播种期',

"name2" : '苗期',

"name3" : '生长期',

"name4" : '采收期'

}

alert(status_process)

结果为:Object:Object

2,json字符串

所谓json字符串,是指该字符串变量的值与json的格式相同,但是不是json对象,比如:

var s1="{"

var s2 = " 'name5' : '闲置期', 'name1' : '播种期','name2' : '苗期','name3' : '生长期','name4' : '采收期'"

var s3="}"

var status_process=s1+s2 +s3;

虽然status_process的值符合json对象的格式,但是它不是对象,只是一个字符串(是拼凑出来的);

将字符串转换为json对象使用函数eval,eval("(" + status_process+ ")");

结论:从后台传入到前台的是json字符串,不是真正的json对象,因此需要使用eval函数转换。

3,json对象的使用

var status_process = {

name5 : '闲置期',

name1 : '播种期',

name2 : '苗期',

name3 : '生长期',

name4 : '采收期'

}

alert(status_process["name5"])

alert(status_process.name5)

两个都为:闲置期

4,json二维对象

var status_process = {

name5 : {name3:'空闲闲置期'},

name1 : '播种期',

name2 : '苗期',

name3 : '生长期',

name4 : '采收期'

}

alert(status_process["name5"]["name3"])

alert(status_process.name5.name3)

结果都为:'空闲闲置期'

1.addJSONData和addRowData有点区别,后者是绑定在jquery对象的,前者是绑定在标签上的。

用addJSONData时举例:$("#table")[0].addJSONData(data)

用FF可以看到$("#table")[0]上绑定的事件的。

2.addJSONData接受的参数:

这是后台的.net代码

new JObject() {

new JProperty("total","1"),

new JProperty("page","1"),

new JProperty("records","3"),

new JProperty("rows",yourArrayData)

}

可以看到addJSONData接受的并不是一个数组,就是一个json对象,开始一直也困扰在这里。

前台返回的JSON:

{"total":"1","page":"1","records":"3","rows":[{"UserID":1,"UserName":"kp","Password":"123","Domain":null,"RoleID":null},{"UserID":2,"UserName":"kptest","Password":"Kp123","Domain":null,"RoleID":null},{"UserID":3,"UserName":"ricky","Password":"123","Domain":"XSUNT-SH\\dong.geng","RoleID":1}]}

3.还有一点需要注意的,jqgrid需要定义一个jsonReader其中的repeatitems如果不指定为false FF会返回obj is undefined

jsonReader: {

repeatitems: false,

rows: "rows",            

total: "total",

page: "page",

records: "records"

}

4.$("#table").addJSONData(data)的调用位置也值得注意,最后只有在loadComplete中才能加载出数据,gridComplete里不可以,方法外也不行。

json追加内容并且修改和删除 *** 作示例:

1、增加:

myObj.user='我是新增的用户-小明'

x +="<h1>增加后的数据</h1>"forin()

2、修改:

myObj.name= "我的网站"

x +="<h1>修改后的数据</h1>"forin()

3、删除:

delete myObj.sites

x +="<h1>删除后的数据</h1>"forin()

扩展资料

JS动态动态创建JSON数据字符串,并且可以删除添加修改

<script type="text/javascript">

//添加或者修改json数据

function setJson(jsonStr,name,value)

{

if(!jsonStr)jsonStr="{}"

var jsonObj = JSON.parse(jsonStr)

jsonObj[name] = value

return JSON.stringify(jsonObj)

}

//删除数据

function deleteJson(jsonStr,name)

{

if(!jsonStr)return null

var jsonObj = JSON.parse(jsonStr)

delete jsonObj[name]

return JSON.stringify(jsonObj)

}

//生成测试

var myjsonStr = setJson(null,"name","aaa")

alert(myjsonStr)

//添加测试

myjsonStr = setJson(myjsonStr,"age",18)

alert(myjsonStr)

//修改测试

myjsonStr = setJson(myjsonStr,"age",20)

alert(myjsonStr)

//删除测试

myjsonStr = deleteJson(myjsonStr,"age")

alert(myjsonStr)

</script>


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11416442.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存