java - org.json.JSONObject 可以生成 {"und":[ {"value" :"some@one.com"}]}?

标签 java json

我正在尝试使用 org.json.JSONObject 构建以下目标 json 字符串:

{"und":[{"value":"some@one.com"}]} 

这是我的代码:

JSONObject und = new JSONObject();
und.accumulate("und", new JSONObject().put("value", "some@one.com"));   
System.out.println( und.toString() );

但它会产生以下结果:

{"und":{"value":"some@one.com"}} 

如何生成目标json字符串?

感谢和问候。

编辑

感谢 SLAks 的输入,以下是生成目标字符串的代码:

     JSONObject und = new JSONObject();
     JSONArray arr = new JSONArray();
     und.put("und", arr);
     arr.put(new JSONObject().put("value", "some@one.com"));
     System.out.println( und.toString() );

最佳答案

您可能想看看 Jackson,它是 Java 上最高效且受支持的 JSON 库之一。

如果您熟悉解码/反序列化,您可以将 POJO 转换为 json,反之亦然。

@JsonSerialize(include = JsonSerialize.Inclusion.NON_DEFAULT)
public class SomeBean {
    Und[] und;
    // TODO: Getters and setters

    public static Und class {
        public String value;
        // TODO: Getters and setters 
    }
}

如果直接解析JSON字符串或文件,可以使用ObjectMapper类

SomeBean someBean = new ObjectMapper().readValue("input goes here", SomeBean.class);

// If you want just a string you can pass in the String class
String json = new ObjectMapper().readValue("input", String.class);

如果 JSON 来自 Web 服务,请查看 Spring 的 RestTemplate,它非常易于使用。

RestTemplate restTemplate = new RestTemplate();
SomeBean someBean = restTemplate.getForEntity("URI goes here", SomeBean.class);

String json = restTemplate.getForEntity("URI goes here", String.class);

关于java - org.json.JSONObject 可以生成 {"und":[ {"value" :"some@one.com"}]}?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16674230/

相关文章:

c# 到 geojson 弹出项目括号 []

javascript - 将对象数据插入 JSON 文件

Java For 数组列表中的循环

java - 如何在 java 中创建 .dat 文件

java - hibernate 和 spring mvc 中的 ClassCastException

JavaFX - 仅显示一个标签

java - JPA - 是否可以将结果作为 @MappedSuperclass 的实例获得?

java - 是否可以看到 Jackson Annotations 创建的 JSON?

javascript - 如何使用 Javascript XMLHttpRequest 将 JSON 数据对象发送到服务器?

javascript - 如何将 json 文件导入 AngularJs 应用程序?