发布网友 发布时间:2022-04-20 21:59
共5个回答
懂视网 时间:2022-05-15 08:25
这次给大家带来JSON字符串与JSON对象相互转化方法总结,JSON字符串与JSON对象相互转化的注意事项有哪些,下面就是实战案例,一起来看一下。将json字符串转换为json对象的方法。在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键
例如:
JSON字符串:
var str = '{ "name": "name1","sex": "m" }';
JSON对象:
var obj = { "name": "name1", "sex": "w" };
一、JSON字符串转换为JSON对象
要使用上面的str1,必须使用下面的方法先转化为JSON对象:
var obj = eval('(' + str + ')'); //由JSON字符串转换为JSON对象,必须把文本包围在括号中,这样才能避免语法错误: "(" + str+ ")"
或者
var obj = $.parseJSON(str); // 将JSON字符串转化为JSON对象 (jQuery)
或者
var obj= str.parseJSON(); //由JSON字符串转换为JSON对象
或者
var obj= JSON.parse(str); //由JSON字符串转换为JSON对象
然后,就可以这样读取:
Alert(obj.name); Alert(obj.sex);
特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。
二、可以使用toJSONString()或者全局方法JSON.stringify()将JSON对象转化为JSON字符串。
例如:
var str=obj.toJSONString(); //将JSON对象转化为JSON字符
或者
var str=JSON.stringify(obj); //将JSON对象转化为JSON字符 alert(str);
总结:
上面我们也看到了在进行类型转化的时候总的来说有两种,一种是JavaScript自带的解析器,而另一种就是JSON解析器,其中javascript解析器可以编译执行任何的javascript代码所以这里隐藏了一个潜在的安全问题而JSON解析器只能识别JSON文本,而不会编译脚本所以比较安全,而且JSON解析器的速度更快。
上面的几个方法中,除了eval()函数是js自带的之外,其他的几个方法都来自json.js包。新版本的JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个方法都注入到了 Javascript的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了String.parseJSON()。如果提示找不到toJSONString()和parseJSON()方法,则说明您的json包版本太低。
相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
推荐阅读:
jquery中ajax执行顺序调整
Ajax与$.ajax实例详解
ajax+html轻松实现文件上传有哪些步骤
热心网友 时间:2022-05-15 05:33
给你个思路:
1、将jsonstr转为json对象 (这个可以用net.sf.json.JSONObject第三方包来实现)
2、根据refObj 这个key获取{'existType':'exist','deptType':'emp','treeNodeType':'dept'},把获取的这数据再转为json.
3、将转后的json根据existType就能取得值了 。
热心网友 时间:2022-05-15 06:51
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import java.util.List;
public class Test {
public static void main(String[] args) {
String jsonStr = "[{'id':'11','parentId':'root','refObj':{'existType':'exist','deptType':'emp','treeNodeType':'dept'}}]";
List<JSONObject> list = JSON.parseArray(jsonStr, JSONObject.class);
for (JSONObject object : list) {
System.out.println(object.getJSONObject("refObj").getString("deptType"));
}
}
}
热心网友 时间:2022-05-15 08:25
public static void test4() {
String jsonStr = "[{'id':'11','parentId':'root','refObj':{'existType':'exist','deptType':'emp','treeNodeType':'dept'}}]";
Gson gson = new Gson();
Type type = new TypeToken<List<Bean>>() {
}.getType();
List<Bean> list = gson.fromJson(jsonStr, type);
for (int i = 0; i < list.size(); i++) {
Bean bean = list.get(i);
// 这就是你需要的值
String existVal = bean.getRefObj().getExistType();
System.out.println(existVal);
}
}
class Bean {
private String id;
private String parentId;
private RefObj refObj;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getParentId() {
return parentId;
}
public void setParentId(String parentId) {
this.parentId = parentId;
}
public RefObj getRefObj() {
return refObj;
}
public void setRefObj(RefObj refObj) {
this.refObj = refObj;
}
@Override
public String toString() {
return "Bean [id=" + id + ", parentId=" + parentId + ", refObj=" + refObj + "]";
}
}
class RefObj {
private String existType;
private String deptType;
private String treeNodeType;
public String getExistType() {
return existType;
}
public void setExistType(String existType) {
this.existType = existType;
}
public String getDeptType() {
return deptType;
}
public void setDeptType(String deptType) {
this.deptType = deptType;
}
public String getTreeNodeType() {
return treeNodeType;
}
public void setTreeNodeType(String treeNodeType) {
this.treeNodeType = treeNodeType;
}
@Override
public String toString() {
return "RefObj [existType=" + existType + ", deptType=" + deptType + ", treeNodeType=" + treeNodeType + "]";
}
}
另外,你的json有错哦!在后面少了一个‘}’
热心网友 时间:2022-05-15 10:17
String jsonStr ="{'id':'11','parentId':'root','refObj':{'existType':'exist','deptType':'emp','treeNodeType':'dept'}}";
JSONObject jsonObj = new JSONObject(jsonStr);
JSONObject refObj = new JSONObject(jsonObj.getString("refObj"));
String existType = refObj.getString("existType");
System.out.println(existType);
jar使用的是org.json.jar