java - 无法将值映射到 Java 中 JSONObject 的属性

标签 java json spring-boot

我有像这样的 Json

{"attributea":"value1","attributeb":"value1","data":{"dca":"asd"}}

在 Controller 中,请求属性都已映射,但数据属性未与对象值映射

Controller 如下所示

insert(@RequestBody Pojo pojo){

}

Pojo.java class Pojo { String attributea; String attributeb; JSONObject data;}

所有值都映射到属性,但数据值没有映射。请问我缺少什么吗?

更新:数据是通用的,它可以具有任何参数,因此我将其类型用作 JSONObject

最佳答案

Pojo 类。

import org.json.JSONObject;
public class Pojo implements Serializable{ 
    private static final long serialVersionUID = 5065805421422772083L;  
    String attributea; 
    String attributeb; 
    JSONObject data;

    public Pojo(String attributea, String attributeb, JSONObject data) {
        super();
        this.attributea = attributea;
        this.attributeb = attributeb;
        this.data = data;
    }
    public Pojo() {
        super();
    }
    //getter setter

    @Override
    public String toString() {
        return "Pojo [attributea=" + attributea + ", attributeb=" + attributeb + ", data=" + data.toString() + "]";
    }
}

curl :curl --header "Content-Type: application/json" --request POST --data @data.json http://localhost:<port>/<api>

data.json 包含:

{"attributea":"value1", "attributeb":"value1", "data": "{\"dca\": \"asd\"}"}

关于java - 无法将值映射到 Java 中 JSONObject 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60860992/

相关文章:

java - ECC ASN1 签名验证失败

Java代码覆盖率: method level unit test

javascript - 将 JSON 字符串传递给 Perl CGI

javascript - postman :如何评估 json 数组

java - 使用 CommandLineRunner spring boot 创建模式

java - PowerMock 不会在 Spring-Boot 应用程序中模拟静态方法来抛出异常

Java 缓存数据库表和列

java - 如何防止Spring MVC参数在 "."之后被截断

php - 解析 JSON 数据时 Highcharts 数据显示问题

spring-mvc - 如何在 Spring MVC 中使用 Jackson 和 Jersey 2 Client 反序列化 Joda DateTime?