如何正确构建包含名为*(星号)的属性的JSON

时间:2018-07-09 11:42:13

标签: java json

在尝试对elasticSearch的API(使用Java)进行一些调用时,我遇到了一个问题。发送的大型JSON中的一个属性只是一个星号。

 "fields":{  
         "*":{  
            "highlight_query":{    
              ...}  }  }

我最初的工作方式是使用将映射到要发送的模型的模型类,但是很明显,星号会阻止这种工作方式-您不能将变量命名为*

我考虑的替代方法是将整个JSON粘贴到string.Format中并提供参数,但这会导致String.Format具有很多参数,这很丑陋。

还有另一种方法吗?

1 个答案:

答案 0 :(得分:1)

如果您使用Jackson将模型类转换为json,则可以使用@JsonProperty批注告诉它给字段指定什么名称。

public class MyModelClass {
    public String foo;

    @JsonProperty("*") // what you want the property to be named
    public String bar; 
}

这将给出格式为

的json
{
  "foo": "someValue",
  "*": "someOtherValue"
}