0

我有一个如下所示的 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 属性是 --- 则将其视为 InValid Request 。

由于各种原因,我不想将此 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");
        }


    }

}

但它始终显示为 Valid 。

请告诉我如何解决这个问题??

谢谢

4

2 回答 2

3
if(str.contains("rate:---")) // is false because
if(str.contains("\"rate\": \"---\"")) // would be true
于 2013-04-29T10:04:24.750 回答
2

您的if情况需要是这样的:-

if(str.contains("\"rate\": \"---\""))

由于在您的 JSON 中,rate&---都包含在双引号中,因此您需要if通过转义它们来添加它们。

尽管这可行,但我强烈建议您使用org.json.JSONObject或正确解析 JSON com.google.gson.JsonObject

于 2013-04-29T10:05:54.777 回答