1

字符串是这样的:

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

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

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

有人可以帮我吗?到目前为止我发现的例子对我来说并不适用。基本上,我希望能够遍历列表中的字典。

我最近尝试将字符串转换为 json,是这样的:

JSONObject data = new JSONObject(json_string);

然而,这又回来了null

谢谢你。

4

3 回答 3

1

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

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

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

于 2012-12-07T22:31:54.060 回答
0
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, ...
    }
于 2012-12-07T23:52:08.750 回答
0

为了配合 Gson 的答案,我建议jackson。以我的经验,它更快且易于使用。

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);

于 2012-12-07T22:47:44.877 回答