Java 将带有json的字符串转换为列表

Java 将带有json的字符串转换为列表,java,json,objectmapper,Java,Json,Objectmapper,我正在尝试将JSON字符串(必须是列表)转换为对象列表: [ { "paramName":"Content-Type", "paramValue":"text/xml; charset\u003d\"utf-8\"" } ] 这是我的服务。课程: String jSONString = new Gson().toJson(systemParams); ObjectMapper mapper = new ObjectMapper(); Li

我正在尝试将JSON字符串(必须是列表)转换为对象列表:

[   
    {
        "paramName":"Content-Type",
         "paramValue":"text/xml; charset\u003d\"utf-8\""
    }
]
这是我的服务。课程:

String jSONString = new Gson().toJson(systemParams);
ObjectMapper mapper = new ObjectMapper();
List<A> map = (List<A>) mapper.readValue(jSONString, A.class);
但我得到了一个例外:

无法反序列化
java.util.LinkedHashMap的实例

所以我尝试了不同的方法:

A[] map = mapper.readValue(jSONString, A[].class);
我得到了:

InvalidDefinitionException:无法构造的实例
com.model.A
(没有创建者,比如默认值 构造、存在):

更新:

我尝试将Service.class更改为:

List<A> map = mapper.readValue(jSONString, new TypeReference<List<A>>(){});
但仍然是一个例外:

com.fasterxml.jackson.databind.exc.InvalidDefinitionException:无法 构造
com.model.A
的实例(无创建者, 与默认构造类似,存在):


我认为问题出在错误中:尝试在必须反序列化的类上定义一个空构造函数。
我还认为,要序列化类(换句话说,从字节到类),必须实现可序列化接口。

这是否回答了您的问题@不,现在我有:InvalidDefinitionException:无法构造
com.model.A
(不存在像默认构造一样的创建者)的实例,但我在A.classI中使用@Data和@allargsconstuctor注释添加了空构造函数,它现在可以工作了。非常感谢。
List<A> map = mapper.readValue(jSONString, new TypeReference<List<A>>(){});
   public A(String paramName, String paramValue) {}