0

XML:

<?xml version="1.0" encoding="UTF-8"?><data><MatEiningaNumer>010101</MatEiningaNumer></data>

Java代码:

String xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><data><MatEiningaNumer>010101</MatEiningaNumer></data>";
JSONObject json = org.json.XML.toJSONObject(xmlString);

生成的json:

data={"MatEiningaNumer":4161}

问题是 org.json.XML.toJSONObject(xmlString) 方法将 010101 文本值转换为 8 基编码十进制值,结果为 4161

有没有办法让这个方法不转换字符串?仅将字符串值放入生成的 json 中?

我想到的唯一解决方案是添加一些字符串前缀,比如说“pre”。为了让转换器相信它是一个字符串。像这个pre010101。并且在使用 json 去除前缀的 Javascript 文件中。

还有其他解决方案吗?

4

1 回答 1

0

您需要一种方法来告诉 JSON 不要将输入解析为数字,而是将其解析为字符串。如果您不能使用 DTD 并且引号不起作用,那么您可以尝试欺骗解析器。添加一个额外的字符:Z010101以确保输入不能被解析为数字。然后稍后用手剥去'Z'。

没有其他方法可以告诉解析器将输入视为字符串吗?

于 2013-06-10T16:45:11.377 回答