我有以下包含特殊字符的JSON:
{
"Laptopà":"Dell"
}
当我尝试在Eclipse IDE中使用UTF-8字符编码解析它时,我得到一个JSONException,指出JSONObject not found。下面是我用来解析的代码片段,
import org.json.JSONObject;
JSONObject jsonObj = new JSONObject(json);
jsonObj.getString("Laptopà");
这给出了以下异常:
org.json.JSONException: JSONObject["Laptop(Junk Character instead of à)"] not found
我已经找了一段时间了,也没有找到任何线索。期待您的帮助来解决这个问题。
发布于 2019-03-27 07:43:11
如果您从File
读取JSON
有效负载,则需要使用JSONTokener
。如果在Java
类中使用JSON
作为String
,请检查文件是否以UTF-8
编码存储。示例代码:
import org.json.JSONObject;
import org.json.JSONTokener;
import java.io.File;
import java.io.FileReader;
public class OrgJsonApp {
public static void main(String[] args) throws Exception {
final String key = "Laptopà";
File jsonFile = new File("./resource/test.json").getAbsoluteFile();
// Read from file
JSONObject jsonObject = new JSONObject(new JSONTokener(new FileReader(jsonFile)));
System.out.println(jsonObject.getString(key));
// Read from `JSON` string
System.out.println(new JSONObject("{\"Laptopà\":\"Dell\"}").getString(key));
}
}
上面的代码正确地打印Dell
两次。
https://stackoverflow.com/questions/55364953
复制相似问题