首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jackson2 - JSON中的意外字段

jackson2 - JSON中的意外字段
EN

Stack Overflow用户
提问于 2016-09-22 19:02:51
回答 2查看 214关注 0票数 0

我正在尝试从java对象编写一个JSON。在我使用ObjectMapper将值写入字符串之前,一切都很正常。该字符串在JSON文档中显示了一个意外的字段,称为"map“。

我想要的是:

代码语言:javascript
复制
{
  "name": [
    {
        "a": "1",
        "b": "2",
        "c": "3",
        "d": "4",
        "e": "5",
        "f": "6"
    }
  ]
}

我明白了:

代码语言:javascript
复制
 {
  "name": [
    {
      "map": {
        "a": "1",
        "b": "2",
        "c": "3",
        "d": "4",
        "e": "5",
        "f": "6"
      }
  ]
}

我在下面的类中定义了要转换为JSON的对象:

代码语言:javascript
复制
public class SomeClass{
    private List<JSONObject> name;

//getters, setters
}

有谁可以帮我?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-06 20:23:29

我已经解决了问题。我刚刚创建了一个对象数组,然后用jackson序列化了它。

代码语言:javascript
复制
private Bla[] bla;
// getters and setters

Bla类:

代码语言:javascript
复制
private String a;
private String b;
private String c;
...
// getters and setters

感谢您做的一切。

琼恩

票数 0
EN

Stack Overflow用户

发布于 2016-09-22 20:43:12

请注意,在您正在序列化的类中,您有一个名为map的参数,如果您将其命名为bla,您将看到:

代码语言:javascript
复制
{
  "name": [
{
  "bla": {
    "a": "1",
    "b": "2",
    "c": "3",
    "d": "4",
    "e": "5",
    "f": "6"
  }
 ]
}

为了去掉参数名,您应该在类内的map参数顶部使用注释:@JsonUnwrapped,如下所示:

代码语言:javascript
复制
@JsonUnwrapped
private Map<String, String> map;

另一种选择是使用以下内容为map创建一个getter函数:

代码语言:javascript
复制
ObjectMapper mapper = new ObjectMapper();
return mapper.writeValueAsString(map.getDataMap());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39637240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档