繁体   English   中英

在Java中,如何将字符串转换为JSON对象?

[英]In Java, how to convert a String to JSON Object?

字符串是这样的:

[{"Id":287,"Name":"aaaaaaaa","ProjectType":"GP"}, ... snip ...]

该STRING还不是JSON,因为即使它作为JSON提供,它也是一个字符串。

我正在尝试将其转换为可以在Java应用程序中使用的结构。

有人可以帮我吗? 到目前为止,我发现的示例对我而言并不奏效。 基本上,我希望能够迭代列表中的“字典”。

我最近一次将字符串转换为json的尝试是:

JSONObject data = new JSONObject(json_string);

但是,这返回null

谢谢。

看一下使用Gson Lib的方法-它非常擅长处理此类事情。 如果使用泛型实现,则可以创建一组序列化程序,这些序列化程序可让您很好地从移动API导入数据。 如果您想了解更多有关示例实现的信息,请告诉我

资料来源: http : //code.google.com/p/google-gson/

文档: https : //sites.google.com/site/gson/gson-user-guide

为配合Gson的回答,我建议杰克逊 以我的经验,它更快且易于使用。

ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally
Map<String, Object> myMap = mapper.readValue(myJSONString, Map.class);

在您的情况下,如果JSON是一个列表(不确定作为“根”元素是否合法),则需要执行List<Map<String, Object>> myList = mapper.readValue(myJSONString, List.class);

import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

JsonElement json = new JsonParser().parse("[{\"Id\":287,\"Name\":\"aaaaaaaa\",\"ProjectType\":\"GP\"}]");
        if(json.isJsonArray()) {        
            for(JsonElement elem : json.getAsJsonArray()) {
                //elem.getAsJsonObject().get("Id")
            }
        } else if (json.isJsonObject()) {
            //json.getAsJsonObject()
        } //other else cases for JsonNull, ...
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM