java - 使用 Java API 动态创建 Json 字符串?

标签 java json

我想使用 java api 创建这样的动态字符串,我尝试使用 javax.json.Json。面临创作问题

{
    "name": "Heirachy",
    "parents": [
        {
            "name": "Parent1",
            "isparent": true
        },
        {
            "name": "Parent2",
            "isparent": true
        },
        {
            "name": "Parent3",
            "isparent": true,
            "parents": [
                { 
                    "name" : "inner-parent3",
                    "isparent" : true,
                    "parents":[
                        {
                            "name" : "inner-most-parent3",
                            "isparent" : true
                        }
                    ]
                },
                { 
                    "name" : "outer-parent3",
                    "isparent" : true
                }
            ]
        }
    ],
    "children": [
        {
            "name": "Childern1",
            "isparent": false
        },
        {
            "name": "Childern2",
            "isparent": false
        },
        {
            "name": "Childern3",
            "isparent": false,
            "children": [
                { 
                    "name" : "inner-1-children3",
                    "isparent" : false
                },
                { 
                    "name" : "inner-2-children3",
                    "isparent" : false
                }
            ]
        },
        {
            "name": "Childern4",
            "isparent": false
        }
    ]
}
JsonArray parent = Json.createArrayBuilder().add(Json.createObjectBuilder()
.add("name", "Parent-1").add("isparent", "true"))
.add(Json.createObjectBuilder().add("name", "Parent-2").add("isparent", "true")).build();

JsonArray children = Json
                .createArrayBuilder()
                .add(Json.createObjectBuilder().add("name", "Children-1")
                        .add("isparent", "true"))
                .add(Json.createObjectBuilder().add("name", "Children-2")
                        .add("isparent", "true")).build();  </pre>

JsonObject obj = Json.createObjectBuilder().add("name", "Heirachy")
                .add("parents", parent).add("children", children).build();                      

最佳答案

希望这对您有所帮助

import com.fasterxml.jackson.databind.ObjectMapper;

class A {

    public static String jsonify(Object message) {
        return objectMapper.writeValueAsString(message);
    }

    public void someMethod() {
        //request can be any DTO
        String s = jsonify(request);
    }
}

关于java - 使用 Java API 动态创建 Json 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32225193/

相关文章:

java - 如何计算jsp中上传的mp3文件的持续时间

java - Calendar.getTime() 中奇怪的 IllegalArgumentException

java - 从 JPA/EJB3 持久性上下文中分离实体

java - 高清设备上 2D android/java 游戏中的错误 FPS

javascript - 在 Javascript、JSON 中描述元组的有效方法

android - 如何访问 JSON 对象中的嵌套数组 (Android)

java - Log4j - 仅过滤掉当前项目的日志

java - 通过将 @JsonProperty 值传递给对象映射器来标识属性

java - 如何忽略一个实体中的属性而不忽略另一个实体中的属性 - JSON

java - 将 JSON 文件转换为特定的 XML 格式