首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >解析UTF-8编码中包含其他语言字符的JSON

解析UTF-8编码中包含其他语言字符的JSON
EN

Stack Overflow用户
提问于 2019-03-27 03:31:26
回答 1查看 461关注 0票数 0

我有以下包含特殊字符的JSON:

代码语言:javascript
复制
{
  "Laptopà":"Dell"
}

当我尝试在Eclipse IDE中使用UTF-8字符编码解析它时,我得到一个JSONException,指出JSONObject not found。下面是我用来解析的代码片段,

代码语言:javascript
复制
import org.json.JSONObject;

JSONObject jsonObj = new JSONObject(json);
jsonObj.getString("Laptopà");

这给出了以下异常:

代码语言:javascript
复制
org.json.JSONException: JSONObject["Laptop(Junk Character instead of à)"] not found

我已经找了一段时间了,也没有找到任何线索。期待您的帮助来解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2019-03-27 07:43:11

如果您从File读取JSON有效负载,则需要使用JSONTokener。如果在Java类中使用JSON作为String,请检查文件是否以UTF-8编码存储。示例代码:

代码语言:javascript
复制
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两次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55364953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档