java中json字符串怎么转json对象

发布网友 发布时间: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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com