【发布时间】:2018-04-16 18:35:26
【问题描述】:
我正在尝试将 JSON 数据存储到 POJO 类中,然后将该类存储到 Firebase 中。如果我使用 str1 作为 fromJson 的输入,则正确填充 pojo 类,但如果使用 str2,则 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;
}
}
问候 贾娜
【问题讨论】:
-
\"是文本内字符串文字引号的转义字符,第二个选项不可通过代码编译,当从 txt 文件加载时,字符串无论如何都会将其作为转义,你需要显示文件的内容以及如何将其加载到内存中 -
str1 是正确的,你应该在 Java 中转义字符串中的双引号。当您的代码中有
String str2 = "{"code":602,"desc":"somedesc"}";时,您的代码真的编译了吗? -
@Marcos 我有一个 CSV 值数据集。使用在线服务,我将 CSV 转换为 JSON。该服务的输出格式是类似 str2 的字符串。以下是我读取JSON文件的方式 InputStream is = context.getAssets().open("samp.json") ; int size = is.available() ;字节[] 缓冲区 = 新字节[大小] ; is.read(缓冲区); is.close(); codeDescJSON = new String(buffer,"UTF-8") ;变量 codeDescJSON 是我传递给 fromJson() 方法的 str2 。问题是“应该转义 JSON 中的双引号还是可选的?”
-
@Sony 没有崩溃但代码和 desc 包含空值
-
不应该在从文本流中读取的时候转义,需要调试看看是否加载正确
标签: android double-quotes