如果输入JSON包含双引号

时间:2018-04-16 18:35:26

标签: android double-quotes

我正在尝试将JSON数据存储到POJO类中,然后将该类存储到Firebase中。如果我使用str1作为fromJson的输入,则pojo类被正确填充,但如果使用fromJson,则返回null。 问题是两个字符串(str1或str2)中的哪一个是正确的? 我的原始数据是CSV格式,我使用其中一个在线转换器将CSV文件转换为JSON格式。数据与str2中显示的格式相同。

String str1 =  "{\"code\":602,\"desc\":\"somedescription\"}"; 
String str2 =  "{"code":602,"desc":"somedesc"}";
myGson = new Gson();
codeDescMast = myGson.fromJson(str1,CodeDescMast.class);

这是我的POJO课程。

public class CodeDescMast {
   int code;
   String desc;

public CodeDescMast() { }
public CodeDescMast(int code, String desc) {
    this.code = code;
    this.desc = desc;
}

public int getCode() {
    return code;
}

public void setCode(int code) {
    this.code = code;
}

public String getDesc() {
    return desc;
}

public void setDesc(String desc) {
    this.desc = desc;
}

}

问候 贾纳

1 个答案:

答案 0 :(得分:0)

Gson正确处理str1,因为它在java中语法正确。

然而str2是不正确的,事实上它也不应该编译。

String str1 =  "{\"code\":602,\"desc\":\"somedescription\"}"; // Correct Way
String str2 =  "{"code":602,"desc":"somedesc"}"; // Incorrect Way

我们可以使用\字符来表示我们想要包含一个特殊字符,并且应该区别对待下一个字符。 \"表示引号字符,而不是字符串的终止。

关于此类实施,请参阅此thread