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

Java 如何正确构建包含名为*(星号)的属性的JSON,java,json,Java,Json,在尝试调用elasticSearch的API(使用Java)时,我遇到了一个问题。发送的大JSON中的一个属性只是一个星号 "fields":{ "*":{ "highlight_query":{ ...} } } 我最初的工作方式是使用一个模型类,该类将映射到要发送的模型,但很明显,星号阻止了这种工作方式-您不能将变量命名为* 我考虑的另一种选择是将整个JSON粘贴到一个string.Format中并

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

 "fields":{  
         "*":{  
            "highlight_query":{    
              ...}  }  }
我最初的工作方式是使用一个模型类,该类将映射到要发送的模型,但很明显,星号阻止了这种工作方式-您不能将变量命名为*

我考虑的另一种选择是将整个JSON粘贴到一个string.Format中并给出参数,但这将导致一个string.Format中包含大量参数,这是非常难看的


还有其他方法吗?

如果您使用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"
}

这完美地回答了我的问题,效果很好。非常感谢Matsemann!