
下面给大家介绍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>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)