繁体   English   中英

无法使用Java在字符串中包含双引号

[英]not able to include double quotes in string using java

我被困在格式化我的String值以用作JSONObject 使用客户端API后,我得到以下响应:

{
 "apiKey": "537563615208489705083657373",
 "data": "{\"Apparent Power kVA\":14.4,\"Grid Duration\":7990260,\"Grid MD kW\":0.59,\"Grid MD kVA\":0.59,\"Voltage\":240,\"Device Sr.No.\":\"SMR01-4417-0002\",\"Frequency\":49.94,\"Remaining Balance\":2737.35,\"Load Relay Status\":\"Connected\",\"Timestamp\":\"2018-02-26 18:31:18\",\"Current\":60,\"Active Power kW\":14.4}"
}

我把它放在我的String文字中。 但是正如您所看到的,响应中包含带空格的键。 它还具有反斜杠(\\)。

所以我用下面的代码来克服这个问题:

        abc= abc.replaceAll("\\\\", "");
        abc=abc.replaceAll("\"", "");
        abc=abc.replaceAll(" ", "");

现在我低于abc输出:

{
apiKey:537563615208489705083657373,
data:{ApparentPowerkVA:14.4,GridDuration:7990260,GridMDkW:0.59,GridMDkVA:0.59,Voltage:240,DeviceSr.No.:SMR01-4417-0002,Frequency:49.94,RemainingBalance:2737.35,LoadRelayStatus:Connected,Timestamp:2018-02-2618:31:18,Current:60,ActivePowerkW:14.4}
}

我成功删除了所有废话字符。 但是我需要双引号才能将abc放入org.JSONObject构造函数中。 但是我不能这样做。 谁能帮我吗。

属性数据中的String绝对可以解释为Java String。 使用以下代码:

String data = "{\\"Apparent Power kVA\\":14.4, ..."; JSONObject obj = new JSONObject(data);

我得到以下输出:

{ "Apparent Power kVA": 14.4, "Grid Duration": 7990260, "Grid MD kW": 0.59, "Grid MD kVA": 0.59, "Voltage": 240, "Device Sr.No.": "SMR01-4417-0002", "Frequency": 49.94, "Remaining Balance": 2737.35, "Load Relay Status": "Connected", "Timestamp": "2018-02-26 18:31:18", "Current": 60, "Active Power kW": 14.4 }

已通过JSON Java v20180130测试

由于@OO Balance遇到了我的错误,我做了以下方法,该方法成功创建了org.JSONObject并将其返回为String。

private static String getCorrectFormat(String original) throws JSONException {
        original= original.replaceAll("\\\\", "");
        original=original.replaceAll("\\\"", "\"");
        original=original.replaceAll(" ", "");

        original=original.replace("\"data\":\"", "\"data\":");
        original = original.replace("}\"", "}");
        JSONObject obj = new JSONObject(original);
        return obj.toString();
    }

谢谢@OO Balance

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM