java json utf-8_关于java:如何使JSONObject的toString()像UTF-8字符一样将UTF-8字符编码为unicode?...
在Java中(用于Android),下面是代码行:
org.json.JSONObject array = new org.json.JSONObject("{"value":"aész"");
System.out.println("RES:" + array.toString());
我想要的输出:
RES: {"value":"a\u00e9sz"}
实际上是:
RES: {"value":"aész"}
如何使JSONObject toString()方法返回以UTF-8特殊字符(如json_encode(array("value","aész"));)的unicode值编码的JSON字符串
提前致谢。
您能否谈谈为什么要以这种方式对输出进行编码? 两者都是符合RFC 7159的有效JSON,含义相同,并且应以相同的方式解码。
这是因为我使用的第三方API Im不支持非英语字符,因此如果将其编码,则可以在以后获取字符。
听起来更像jar问题。 JsonObject是跨各种开源库使用的类。下载此jar json-rpc-1.0.jar
尝试这个:
JSONObject json = new JSONObject();
json.put("value","aész");
System.out.println(json.toString());
产生:
{"Name":"u00e9sz"}
但是请看,我希望结果不会出现在特殊字符中。 我不希望结果是:asz,我实际上希望它是:" a u00e9sz"
编辑答案,尝试那个罐子。 @格雷戈
结果应该是{"Name":"a\u00e9sz"}吗?
如果希望它转义所有非ASCII字符,则需要构建自己的org.json.JSONObject类版本。
您需要修改的方法的签名是
public static Writer quote(String string, Writer w) throws IOException
它在JSONObject.java中声明。这是负责格式化产生的json字符串中所有字符串值的方法。它遍历源字符串的所有字符并发出相应的输出字符。
您要查找的内容位于switch语句的"默认"部分。
原始代码(至少在我现在正在查看的源代码中)如下所示:
default:
if (c < ' ' || (c >= '\u0080' && c < '\u00a0')
|| (c >= '\u2000' && c < '\u2100')) {
w.write("\\u");
hhhh = Integer.toHexString(c);
w.write("0000", 0, 4 - hhhh.length());
w.write(hhhh);
} else {
w.write(c);
}
您需要更改" if"测试以匹配要转义的所有字符。
这就是你想要的:
default:
if (c < ' ' || c >= '\u0080') {
w.write("\\u");
hhhh = Integer.toHexString(c);
w.write("0000", 0, 4 - hhhh.length());
w.write(hhhh);
} else {
w.write(c);
}
希望这可以帮助。
P.S:我遇到了您的问题,因为遇到了同样的问题:我生成的json字符串需要通过一个仅接受ascii字符并处理任何大于127的字符的系统传输。
我想您想要的是ISO-8859-1编码。这是一个很好的答案:
在Java中将UTF-8转换为ISO-8859-1-如何使其保持为单字节
嗯,也许我不明白如何在JSON字符串中实现,我举了一个很小的例子,您能否尝试用我给出的例子来展示?
java json utf-8_关于java:如何使JSONObject的toString()像UTF-8字符一样将UTF-8字符编码为unicode?...相关推荐
- java 升级1.8_升级java到1.8.0_111
这个wget的URL如何获取呢? wget "http://javadl.oracle.com/webapps/download/AutoDL?BundleId=216424" - ...
- java 编码格式 utf 8_关于java生成UTF-8编码格式文件的诡异问题
如果一个字节,以10开始,表示它不是首字节,需要向前查找才能得到当前字符的首字节. 可见UTF-8可以有效地保证数据的完整性,避免出现编码的错位.即使偶然出现"坏字",也不会影响到 ...
- java json 压缩,如何在Java中压缩JSON并在Javascript中解压缩
I have a large amount of data being sent from server to Javascript, which is taking quite a long tim ...
- java json clone_再谈java clone 以及 浅/深拷贝
package design.creator.prototype; import java.util.ArrayList; import java.util.List;/** * 深度拷贝:*/ cl ...
- java json转换xml_在Java中将JSON转换为XML
我是json的新手.我有一个程序可以从json对象生成xml. String str = "{'name':'JSON','integer':1,'double':2.0,'boolean' ...
- java json keyset_使用keySet()从JSONObject提取密钥
我正在尝试从JSON对象提取密钥.在这种情况下,JSON对象是通过对名为 SkyRock的 社交网站的API调用获得的,如下所示: { "max_page": 2, "p ...
- java 将json转成utf 8_解决JSON.stringify()自动将中文转译成unicode的方法
最近在工作中,发现在IE8下JSON.stringify()自动将中文转译为unicode编码,原本选择的中文字符,传到后台变为了unicode编码,即\u****的形式.查找资料后发现,与标准的JS ...
- Java Json API:Gson使用简单入门
GSON是Google开发的Java API,用于转换Java对象和Json对象.本文讨论并提供了使用API的简单代码示例.更多关于GSON的API可以访问:http://sites.google.c ...
- java json开发包 fastjson 简介
Json是一种轻量级的数据交换格式,采用一种"键:值"对的文本格式来存储和表示数据,在系统交换数据过程中常常被使用,是一种理想的数据交换语言.在使用Java做Web开发时,不可避免 ...
最新文章
- PowerShell2.0之桌面计算机维护(九)磁盘管理
- 冒名顶替上大学罗彩霞_什么是冒名顶替综合症,您如何克服?
- HTML文件属于void值吗,使用HTML :: TreeBuilder查找html文件中的值
- Oracle重建回滚段
- C# WinForm WebBrowser (三) 编辑模式
- java swing 帮助文档,在Java Swing应用程序中创建在线帮助-使用pdf用户文档
- Bailian2737 大整数除法【大数】
- Mybatis源码概览(一)
- linux内核源码分析--内核启动之,Linux内核源码分析之setup_arch (二)
- 搭建一个tomcat的JSP服务器环境
- python英语单词 扇贝英语安卓下载_扇贝单词英语版app下载-扇贝单词英语版v3.5.803 安卓版-腾牛安卓网...
- Java Ajax技术详解:(一)Ajax 简介
- 提高个人竞争力的三件法宝
- 1553B总线通信协议
- 树莓派3b+,4b新手入门到手开箱第一次使用之十大步骤
- #7 C++高级--内存管理、文件处理、多线程
- PointNet 翻译:
- Bad Ugly Numbers
- SAP 消息号 KI261 成本中心 XXXX/XXXXX 冻结而不能直接对 XXXX.XX.XX 收入记帐 的问题处理
- 详解dagger2----泡在网上的日子
热门文章
- 学计算机进富士康,大学生去富士康会分配到流水线上工作吗?
- 2017GYL创业营暨青年大会全球招募中
- numpy中mgrid()和meshgrid()函数
- Socket协议编程实践
- 彻底卸载alibabaprotect
- php输出源代码,PHP源代码分析-echo实现详解
- [算法总结] 中位数+绝对值不等式 AcWing 104. 货仓选址
- picview是哪里的图片_pic是图片还是照片
- rsa不同编程语言互相加解密
- 重构碎片化知识_《碎片化与重构》之如何整合知识碎片