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