java中如何将json对象 Package 成单元素数组

0x6upsns  于 2021-07-08  发布在  Java
关注(0)|答案(3)|浏览(387)

我有一个java类,我想把它转换成json。接受此输入的服务器需要一个包含键值Map的单元素json数组
例如,如果您有一个类,如图所示:

public class Input {

    private String id1;
    private int id2;
    private String s1;
    private String s2;
    private String s3;
    ...
}

// Code which converts above class to JSON string:
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
Input input = new Input(id1, id2, s1, s2, s3);
System.out.println(objectMapper.writeValueAsString(input));

// Actual Output:
{"id1":"...","id2":...,"s1":"c...","s2":"...","s3":"..."}

// Expected Output:
[{"id1":"...","id2":...,"s1":"c...","s2":"...","s3":"..."}]

你知道如何得到预期的结果吗?

rjee0c15

rjee0c151#

您可以将jsonobject放入jsonarray,如下所示。

JSONObject obj = new JSONObject();
obj.put("firstName", firstName);
obj.put("lastName", lastName);

JSONArray array = new JSONArray();
array.put(obj)
hmae6n7t

hmae6n7t2#

有两种方法可以做到这一点(考虑到问题规格很差)
丑陋的

System.out.println("[" + objectMapper.writeValueAsString(input) + "]");

好的

Input[] input = new Input[] { new Input(id1, id2, s1, s2, s3) };
System.out.println(objectMapper.writeValueAsString(input));
arknldoa

arknldoa3#

一种方法是:

System.out.println(objectMapper.writeValueAsString(new Object[] { input }));

相关问题