如何在JAVA中转义特殊字符Restful API查询字符串

如何在JAVA中转义特殊字符Restful API查询字符串,java,rest,elk,Java,Rest,Elk,我尝试修改现有查询字符串以筛选指定条件: 现在查询字符串如下: String bodycontent="{" +" \"_source\": [\"@timestamp\",\"eqpid\",\"lotid\",\"stageid\",\"srvmethod\",\"parm_1\",\&qu

我尝试修改现有查询字符串以筛选指定条件: 现在查询字符串如下:

String bodycontent="{"
                +"  \"_source\": [\"@timestamp\",\"eqpid\",\"lotid\",\"stageid\",\"srvmethod\",\"parm_1\",\"apcack\",\"description\",\"host\",\"path\",\"action\"],"
                +"  \"query\": {"
                +"    \"query_string\" : {"
                +"        \"query\":\" lotid:"+q_lotid+" AND "+host_type+"\"}"
                +"  },"
                +"  \"sort\" : [{\"@timestamp\" : { \"order\" : \"desc\" }}]"
                +"}";
我想更改以下查询条件:

query :
type:ams_log AND (alm_source:K*) AND (alm_id:TCS00004 OR alm_id:TCS00005 OR alm_id:TCS00007 OR alm_id:TCS00008 OR alm_id:TCS00009 OR alm_id:TCS00010 OR alm_id:TCS00011 OR alm_id:TCS00012 OR alm_id:TCS00013 OR alm_id:TCS00020 OR alm_id:TCS00024 OR alm_id:TCS00032)
但是我不知道如何用斜杠
\
和双引号
修改查询字符串。 我找不到规则,谢谢!

  • 斜杠-
    \\
  • 引用-
    \”

输出:

\“你好”


关于您的查询,似乎键和值都必须在引号之间
“键”:“值”

“洛蒂德”:“2020年”和“类型”:“苹果”


斜杠->\,引号->“名称”



斜杠->\,引号->“名称”

+“\”查询\:“\”洛蒂德:“+q\u洛蒂德+”和“+host\u type+”\”}”你能解释一下这行吗?谢谢这是不正确的,因为在主机类型中包含最后一个引号,但不在开头。因此,输出类似于:
“query”:“lotid:12和name”}
+“query\”:“lotid:+q\u lotid+”和“+host\u type+”\“\”}
-->输出-->
“query”:“lotid:12和“name”}
注意,您可能需要在查询中“name”之后的最后一个引号,请更新注释。请尝试
+“\“query\”:\“lotid:+q\u lotid+”和\“+host\u type+”\“\”}”
——总之,为什么需要最后一个}?
System.out.println("\\ \"hello\"");
String lotId="2020_A_88";
String type="apples";
String queryPart = "\"lotId\":\""+lotId+"\" AND \"type\":\""+type+"\"";
System.out.println(queryPart);    
String example = String.format("Slash-> %s , Quotes-> %s", "\\" ,"\"name\""); 
System.out.println(example);
String s = "\\";
String q = "\"name\"";
System.out.println("Slash-> "+s+" , Quotes-> "+q);