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
Java Json中的Json在spring boot中不工作_Java_Json_Spring Boot - Fatal编程技术网

Java Json中的Json在spring boot中不工作

Java Json中的Json在spring boot中不工作,java,json,spring-boot,Java,Json,Spring Boot,我试图在JSON请求中使用JSON 例如: { "name":"newdeeeepaajlf", "category":"fsafaa", "jsonData":{ "a":"value" } } 现在,当我试图把它放在我的DTO中时 private JSONObject jsonData; 它在一个空白的JSON中转换 {} 我被困在这里面了。如果您有类似于下面的json,那么json中就会出现错误 { "name": "newdeeeepaajlf", "category

我试图在JSON请求中使用JSON

例如:

{
"name":"newdeeeepaajlf",
"category":"fsafaa",
"jsonData":{
   "a":"value"
}
}
现在,当我试图把它放在我的DTO中时

private JSONObject jsonData;
它在一个空白的JSON中转换

{}

我被困在这里面了。

如果您有类似于下面的json,那么json中就会出现错误

{
  "name": "newdeeeepaajlf",
  "category": "fsafaa",
  "jsonData": {
    "a": "value"
  }
}
您可以将其用作一个类

public class Codebeautify {
 private String name;
 private String category;
 JsonData jsonDataObject;


 // Getter Methods 

 public String getName() {
  return name;
 }

 public String getCategory() {
  return category;
 }

 public JsonData getJsonData() {
  return jsonDataObject;
 }

 // Setter Methods 

 public void setName(String name) {
  this.name = name;
 }

 public void setCategory(String category) {
  this.category = category;
 }

 public void setJsonData(JsonData jsonDataObject) {
  this.jsonDataObject = jsonDataObject;
 }
}
public class JsonData {
 private String a;


 // Getter Methods 

 public String getA() {
  return a;
 }

 // Setter Methods 

 public void setA(String a) {
  this.a = a;
 }
}

json中的json也在spring boot中使用,这是一个非常常见的场景。使用ObjectMapper将json映射到类。

我们可以使用map转换数据

public class TestModel {
    private String name;
    private String category;
    private Map<String, Object> jsonObj;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public Map<String, Object> getJsonObj() {
        return jsonObj;
    }

    public void setJsonObj(Map<String, Object> jsonObj) {
        this.jsonObj = jsonObj;
    }

}

请求

{
    "category":"json",
    "name":"name",
    "jsonObj": {
        "a": "value"
    }
}
它会打印出来

json
name
{a=value}

你想在这里做什么?为什么不能添加目标实体而不是JSONObject?因为它是动态JSON,没有固定的格式。实际上,我希望将它转换为JSONObject,这样我就可以直接使用它,我不需要做额外的工作。实际上,您可以将映射转换为JSONObject。我更新了代码你的方法很好,但这是一个动态数据,我们不总是把“a”作为键。键可以是可变的,但结构应该是相同的
json
name
{a=value}