0

我正在使用来自 org.json.* 的 JSONObject

我需要用这样的字符串字段构造 JSONObject

field:"englishletters123\u1234\u3456"//UTF-8 encoding

所以,我正在这样做

myJSONObject.put("field", myString);

但不是这个,我得到的是带有流利(非英语)字母的对象,而不是它们的 UTF-8 表示。

String newString = new String(oldString.getBytes(...), ...);
myJSONObject.put("field", newString);

也不行

有没有办法进行这样的操作?也许我应该使用其他图书馆?

4

1 回答 1

0

我对那个 JSON 序列化库不太熟悉,但既然你问了,谷歌的 GSON 库就很棒。它通过反射处理几乎所有事情,就像创建一个适合您尝试创建的 JSON 文本描述的对象一样简单。

例如:

public class Thing{
    public String field = "whatever you want";
}

Gson gson = new Gson();

String jsonString = gson.toJson(new Thing());

反序列化也很简单:

Thing t = gson.fromJson(jsonString, Thing.class);

当然,图书馆还有很多东西,但这是它的基础。

于 2012-10-08T20:42:36.340 回答