js前端跟后端的交互--json

匿名 (未验证) 提交于 2019-12-02 22:56:40

(1)前端js解析前端json数据:

one:

定义一个json对象变量:

var jsonobject={};

赋值json对象的key-value值:

jsonobject[key]=value;

遍历json对象1:

var jsonobject={"name":"张三","sex":"女",..}

//1.获取key-value方法(不知道key值的情况):

for(var key in jsonobject){

alert(key);//获取json对象的key

alert(jsonobject[key]);//获取json对象key对应的value值

}

//2.获取value方法(知道key值的情况):

alert(jsonobject.name);

alert(jsonobject.sex);

遍历json对象2:

var jsonobject={

"0":{"name":"2","sex":"1"},

"1":{"name":"3","sex":"7"}

};

for(var key in jsonobject){

alert(key);//获取key

for(var subkey in jsonobject[key]){

alert(jsonobject[key].name)//获取具体key的value值

alert(subkey);//获取子key

//获取subkey的value值(下面方法行不通,返回的是undefined)

// alert(jsonobject[key][subkey]);

//正确获取subkey的value值

alert(eval("jsonobject[key]."+subkey));

}

}

two:

定义一个json数组:

var jsonarray=[];

赋值json数组值:

var json={

"name":"1",

"sex":"3"

};

var json2={

"name":"5",

"sex":"7"

};

jsonarray.push(json);

jsonarray.push(json2);

遍历json数组:

for(var i=0;i<jsonarray.length;i++){//或者使用for(var subkey in jsonarray)

alert(jsonarray[i].name)//获取json数组key对应的value

for(var key in jsonarray[i]){

alert(key);//获取json对象key

alert(jsonarray[i][key])//获取json对象value

}

}

(2) 前端js解析后端json数据字符串

后端传来的json字符串:

jsonstr=[{"RES":"OK","MSG":"success"}]

jsonstr=[{..},{..},[{..},{..}]]

解析:

var jsonArray=JSON.parse(jsonstr);//一般使用这种方法,不会出什么问题

var jsonArray=eval('('+jsonstr+')');//此方法不建议用来转json

var jsonArray=jsonstr.parseJSON();//此方法容易抛语法上的异常,不建议使用

var jsonobj=jsonArray[i]//赋值给jsonobj变量,对应的是第i个jsonArray值(可以是jsonarray或者jsonobject)

遍历解析同(1)前端js解析前端json数据;

(3)json对象转为json字符串

toJSONString()或者 JSON.stringify(),多用于由前端请求后端发送ajax请求data参数,

例如:

$.ajax({

type: "POST",

url: '/MES/PostServlet',

data: JSON.stringify({

tokenID: formBuilderToken,

schema: formBuilderSchema,

funCode: formPageFunCode,

funData: JSON.stringify({

func: 'doProcedure',

params: param,

ObjI_Button: formBuilderquery

})

}),

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!