如何将 2d json 数组映射到 pojo 类?
How can I map my 2d json array to a pojo classes?
我有一个 json 结构如下
{
"components":
{
"metadata":[
[
{"component":2},{"component":9}
],
[
{"component":10},{"component":15}
]
]
}
}
而我的 POJO class 是 ()
public class Components {
private List<Metadata> metadata;
// Getters and setters
}
public class Metadata{
private List<String> component;
// Getters and setters
}
我在 ObjectMapper 中收到如下错误:
"Can not deserialize instance of com.sections.metadata.Metadata out of START_ARRAY token"
任何人都可以帮助我更正我的 POJO class 结构吗?
由于 json 是一个二维数组,我创建了两个数组列表,
一个在组件 class 中,另一个在元数据 class.
中
提前致谢!
{
"components":
{
"metadata":[
[
{"component":2},{"component":9}
],
[
{"component":10},{"component":15}
]
]
}
}
以上JSON与您指定的对象结构不对应。
- 组件中没有'metadata'的Array。注意周围没有'[]'。
- 在元数据中,有一个对象数组(或简称数组),每个对象都有字符串列表,组件
这是您需要的:
public class ComponentsWrapper {
private Components components;
public Components getComponents() {
return components;
}
public void setComponents(Components components) {
this.components = components;
}
public static void main(String[] args) throws IOException, URISyntaxException {
ObjectMapper objectMapper = new ObjectMapper();
ComponentsWrapper components =
objectMapper.readValue(<your JSON>),
ComponentsWrapper.class);
}
}
class Components {
private List<List<Component>> metadata;
public List<List<Component>> getMetadata() {
return metadata;
}
public void setMetadata(List<List<Component>> metadata) {
this.metadata = metadata;
}
}
class Component {
private int component;
public int getComponent() {
return component;
}
public void setComponent(int component) {
this.component = component;
}
}
我有一个 json 结构如下
{
"components":
{
"metadata":[
[
{"component":2},{"component":9}
],
[
{"component":10},{"component":15}
]
]
}
}
而我的 POJO class 是 ()
public class Components {
private List<Metadata> metadata;
// Getters and setters
}
public class Metadata{
private List<String> component;
// Getters and setters
}
我在 ObjectMapper 中收到如下错误:
"Can not deserialize instance of com.sections.metadata.Metadata out of START_ARRAY token"
任何人都可以帮助我更正我的 POJO class 结构吗? 由于 json 是一个二维数组,我创建了两个数组列表, 一个在组件 class 中,另一个在元数据 class.
中提前致谢!
{
"components":
{
"metadata":[
[
{"component":2},{"component":9}
],
[
{"component":10},{"component":15}
]
]
}
}
以上JSON与您指定的对象结构不对应。
- 组件中没有'metadata'的Array。注意周围没有'[]'。
- 在元数据中,有一个对象数组(或简称数组),每个对象都有字符串列表,组件
这是您需要的:
public class ComponentsWrapper {
private Components components;
public Components getComponents() {
return components;
}
public void setComponents(Components components) {
this.components = components;
}
public static void main(String[] args) throws IOException, URISyntaxException {
ObjectMapper objectMapper = new ObjectMapper();
ComponentsWrapper components =
objectMapper.readValue(<your JSON>),
ComponentsWrapper.class);
}
}
class Components {
private List<List<Component>> metadata;
public List<List<Component>> getMetadata() {
return metadata;
}
public void setMetadata(List<List<Component>> metadata) {
this.metadata = metadata;
}
}
class Component {
private int component;
public int getComponent() {
return component;
}
public void setComponent(int component) {
this.component = component;
}
}