有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用jackson spring API解析嵌套json

我能够用ObjectMapper类解析嵌套的json字符串。这里的问题是解析嵌套的json变得越来越困难,因为我必须编写大量样板代码来实现将json解析为java对象的最终结果。除了这种方法,spring中还有更好的解析方法吗

域类:

组件类

public class Components {

    private String name;

    private String url;

    private List<Properties> properties;

    // getters and setters
}

属性类别:

public class Properties {

    private String name;

    private String value;

    private boolean exclusions;

    // getters and setters

} 

控制器类:

@RestController
public class TempController {

    String jsonResponse = null;

    @RequestMapping("/")
    public @ResponseBody String getResponse(){
        JsonreadApplication ja = new JsonreadApplication();
        jsonResponse = ja.readJsonFile();
        //System.out.println(jsonResponse);
        return jsonResponse;
    }

    @RequestMapping("/temp")
    public @ResponseBody String getTempByServerType(String jsonResponse){
        jsonResponse = getResponse();
        Components components = new Components();
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            Iterator<Entry<String, JsonNode>> fieldNames = objectMapper.readTree(jsonResponse).fields();
            while(fieldNames.hasNext()){
                System.out.println(fieldNames.next());
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return "I've parsed json!";
    }
}

json文件:

{
    "name": "CatalogTools",
    "url": "/atg/commerce/catalog/CatalogTools/",
    "properties": [
        {
            "name": "queryASAFFabrics",
            "value": "skuType=\"ASAF_FABRIC\" AND NOT basicColor IS NULL ORDER BY dynamicAttributes.fabricpriceband, basicColor, dynamicAttributes.fabrictype, dynamicAttributes.asafpattern, dynamicAttributes.asaffabricbrand",
            "exclusions": "false"
        },
        {
            "name": "loggingDebug",
            "value": "true",
            "exclusions": "false"
        }
    ]
}

如前所述,可以使用ObjectMapper实例进行解析,但需要使用大量样板代码和硬编码json元素名称。有更好的方法吗?我正在使用jackson库解析json文件

我在网上提到了许多链接,其中@RequestBody注释用于HTTP POST操作。这里,它是一个HTTP GET请求

非常感谢您的帮助

非常感谢


共 (1) 个答案

  1. # 1 楼答案

    您可以使用jsonchema2pojo

    将json的示例放在这里,将“Source Type”设置为json,将Annotation style选择为Jackson 2。x或1。然后点击“Zip”。瞧,整个模型都生成了