失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > javascript对象和json字符串之间转换的问题

javascript对象和json字符串之间转换的问题

时间:2023-06-30 17:16:27

相关推荐

javascript对象和json字符串之间转换的问题

在开发中,当使用ajax向后端发送请求返回一个json时,有两个可能,一种是返回json字符串,一种是返回object。

javascript中有两个方法可以用来处理两者之间的互相转换问题:

JSON.parse(string) :接受一个 JSON 字符串并将其转换成一个 JavaScript 对象。

JSON.stringify(obj) :接受一个 JavaScript 对象并将其转换为一个 JSON 字符串。

此时我们定义一个ResultInfo实体类

package com.itheima.domain;import java.io.Serializable;import java.util.Objects;/*** 用于封装后端返回前端数据对象*/public class ResultInfo implements Serializable {private boolean flag;//后端返回结果正常为true,发生异常返回falseprivate Object data;//后端返回结果数据对象private String errorMsg;//发生异常的错误消息//无参构造方法public ResultInfo() {}public ResultInfo(boolean flag) {this.flag = flag;}/*** 有参构造方法* @param flag* @param errorMsg*/public ResultInfo(boolean flag, String errorMsg) {this.flag = flag;this.errorMsg = errorMsg;}/*** 有参构造方法* @param flag* @param data* @param errorMsg*/public ResultInfo(boolean flag, Object data, String errorMsg) {this.flag = flag;this.data = data;this.errorMsg = errorMsg;}public boolean isFlag() {return flag;}public void setFlag(boolean flag) {this.flag = flag;}public Object getData() {return data;}public void setData(Object data) {this.data = data;}public String getErrorMsg() {return errorMsg;}public void setErrorMsg(String errorMsg) {this.errorMsg = errorMsg;}}

定义一个TestServlet测试类

//创建json格式的字符串String allCategory="[{"cid":8,"cname":"全球自由行"},{"cid":5,"cname":"国内游"}];resultInfo=new ResultInfo(true,allCategory,null);//创建json转换类ObjectMapper objectMapper = new ObjectMapper();//将ResultInfo对象转为json字符串String jsonData=objectMapper.writeValueAsString(resultInfo);response.getWriter().write(jsonData);

将一个json格式的字符串加入到ResultInfo对象中,再把该对象转为json字符串发送给ajax请求的页面。页面获取的ResultInfo对象为object对象,可以直接使用。而要使用该对象里的allCategory属性的话,需要把allCategory转为javascript对象。页面获取的ResultInfo对象的其它属性为object对象,可以直接使用。

var categoryList=JSON.parse(resultInfo.data);

也可以使用javascript的内置对象转为javascript对象

var categoryList = eval("("+resultInfo.data+")");

如果觉得《javascript对象和json字符串之间转换的问题》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。