【发布时间】:2014-05-24 11:06:35
【问题描述】:
我有这个带有对象数组的 Json 字符串:
{DateFormat :[{column: 0, pattern: "yyyyMMdd"},
{column: 2, pattern: "yyyyMMdd"} ]}
我使用带有 Jackson Parser 的 Spring MVC..
Java Pojo 必须如何看起来才能自动将这个 Json 字符串解析为一个对象?
在春天,我通常会这样做:
public @ResponseBody String login(@RequestBody DateFormat dataFormaPojo){
}
这适用于简单的 Json 字符串,但我如何将我的对象数组解析为 Java 对象或其中包含对象的 ArrayList?我希望 Jackson 解析器在收到 json 文件时自动处理它。
编辑:我稍微扩展了 json 文件并创建了这个 java 类,但它没有工作:
import java.io.Serializable;
public class DataFormat implements Serializable
{
private static
final long serialVersionUID = 1L;
private Integer column;
private String type;
private String pattern;
public Integer getColumn()
{
return column;
}
public void setColumn(Integer column)
{
this.column = column;
}
public String getType()
{
return type;
}
public void setType(String type)
{
this.type = type;
}
public String getPattern()
{
return pattern;
}
public void setPattern(String pattern)
{
this.pattern = pattern;
}
}
还有 DataFormList 类
import java.io.Serializable;
import java.util.ArrayList;
import
java.util.List;
public class DataFormatList implements Serializable
{
private static final long serialVersionUID = 2514719982327593095L;
private List<DataFormat> DataFormat = new ArrayList<DataFormat> ();
public List<DataFormat> getDateFormats()
{
return DataFormat;
}
public void setDateFormats(List<DataFormat> formats)
{
this.DataFormat= formats;
}
}
在春天:
@RequestMapping(value="/save",method=
{
RequestMethod.GET,RequestMethod.POST
}
)
public @ResponseBody String createDataSource( @RequestBody DataFormatList dataFormaPojo)
{
for(DataFormat df: dataFormaPojo.getDateFormats())
{
System.out.println(df.getType());
}
return "";
}
我得到的 Json 字符串如下所示:
{
"DataFormat": [
{
"column": 0,
"type": "number"
},
{
"column": 1,
"type": "number"
},
{
"column": 2,
"type": "number"
},
{
"column": 3,
"type": "number"
}
]
}
如果我希望对象 DataFormat 有其他名称,我可以为 Jackson 的对象设置自定义名称吗?
为什么我的班级没有解析 json 字符串?我没有收到错误消息。
EDIT3:如果我查看 goolge chrome 开发工具,我会收到 400 错误请求消息,但在 Spring 中,我没有收到来自 Jackson 的错误消息,表明他无法将我的数据解析为 Pojo..
【问题讨论】:
标签: java json spring jackson pojo