Java:从JSON格式检查Java中的值
我有一个JSON,如下所示Java:从JSON格式检查Java中的值,java,json,Java,Json,我有一个JSON,如下所示 { "qty": "1", "dswer": 0, "bag": { "dm": "2", "rate": "---", "ghy": "3013-04-05T00:00:00.000-05:00", "dee": "301304", "desc": "SSAA APR 05 2013 --- BGG" } } 我的要求是,如果上述Json中的rate属性
{
"qty": "1",
"dswer": 0,
"bag": {
"dm": "2",
"rate": "---",
"ghy": "3013-04-05T00:00:00.000-05:00",
"dee": "301304",
"desc": "SSAA APR 05 2013 --- BGG"
}
}
我的要求是,如果上述Json中的rate属性为-,则将其视为无效请求
出于各种原因,我不想将此JSON分配给Java类
所以我试着这样做
package com;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String args[]) {
String str = "{\r\n" +
" \"qty\": \"1\",\r\n" +
" \"dswer\": 0,\r\n" +
" \"bag\": {\r\n" +
" \"dm\": \"2\",\r\n" +
" \"rate\": \"---\",\r\n" +
" \"ghy\": \"3013-04-05T00:00:00.000-05:00\",\r\n" +
" \"dee\": \"301304\",\r\n" +
" \"desc\": \"SSAA APR 05 2013 --- CALL\"\r\n" +
" }\r\n" +
"}";
if(str.contains("rate:---"))
{
System.out.println("InValid");
}
else
{
System.out.println("Valid");
}
}
}
但它总是显示为有效
请告诉我如何解决这个问题
如果您的状况需要这样,请感谢:-
if(str.contains("rate:---")) // is false because
if(str.contains("\"rate\": \"---\"")) // would be true
if(str.contains("\"rate\": \"---\""))
因为在JSON中,rate
&--
都包含在双引号中,所以需要通过转义将它们添加到if
条件中
即使这样做可行,我强烈建议您使用
org.JSON.JSONObject
或com.google.gson.JSONObject
正确解析JSON,前提是条件必须是:-
if(str.contains("\"rate\": \"---\""))
因为在JSON中,rate
&--
都包含在双引号中,所以需要通过转义将它们添加到if
条件中
即使这样做可行,我强烈建议您使用org.JSON.JSONObject
或com.google.gson.JSONObject
正确解析JSON