Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将此JSON数据转换为Java中的对象列表_Java_Json_Jackson - Fatal编程技术网

将此JSON数据转换为Java中的对象列表

将此JSON数据转换为Java中的对象列表,java,json,jackson,Java,Json,Jackson,我的输入是JSON数据。它看起来像: [ { "shortName": "av", "longName": "average", "Color": "black", "fromValue": "45", "toValue": "59" }, { "shortName": "g", "longName": "good", "Color": "red

我的输入是JSON数据。它看起来像:

[
    {
        "shortName": "av",
        "longName": "average",
        "Color": "black",
        "fromValue": "45",
        "toValue": "59"
    },
    {
        "shortName": "g",
        "longName": "good",
        "Color": "red",
        "fromValue": "35",
        "toValue": "68"
    }
]

我需要将此数据转换为对象列表(
PerfLevel
class)。我该怎么做呢?

只需使用org.json.*包

您可以在JSONArray下查找它,JSONObject将是最有趣的代码片段

此外,您的JSON对象的格式也不是很好,您应该首先创建一个对象数组,如:

users : [{
    "shortname" : "g",
    "moreAttributes" : ""
}, {
    "shortname" : "h",
    "moreAttributes" : ""
}]
使用此数组结构,可以在数组外部添加对象信息。例如,一条错误消息

现在,您可以使用一些简单的方法访问json文件:

JSONObject jObj = //the json file you loaded
JSONArray jArr = jObj.getArray("users");
JSONObject jUser;


//at this point you can iterate over your array and get information via:
jUser = jArr.getJSONObject(1)

//now you can get all the information from the jUser object
//e.g.
jUser.getString("shortname");
使用或将JSON读取为
列表
或预期类型的数组。 与杰克逊一起:


ObjectMapper mapper=新建ObjectMapper();//如果有多个调用,则重用
MyPOJO[]pojo=mapper.readValue(jsonSource,MyPOJO[].class);//对于'List',需要使用'TypeReference'`
//或者,如果您没有匹配的MyPOJO类型:
List-pojosasmap=mapper.readValue(jsonSource,List.class);

还有很多其他方法可以做到这一点,比如读取JSON树(
JsonNode
)。
这一切都取决于您是否可以轻松地将结构建模为Java类(如果可以的话,这是最方便的)。。。