【发布时间】:2012-01-10 09:00:40
【问题描述】:
我正在使用org.json api 将 xml 转换为 json。问题是我的 xml 中的某些标签包含非字符串值(即 int、boolean、double 等......)。
我在下面使用的代码成功地将 xml 转换为 json,但原始数据类型在 json 响应中转换为字符串。例如:xml 中的 <age>10<age> 被转换为 {"age" : "10" },其中 json 中的值 10 是 String,应该是 Integer。例如{"age" : 10 }。
我为转换提供的 xml 输入是动态的,并且会经常更改。但为了将其显示为示例,我将 xml 保存为String。动态生成的 xml 代码将保存在字符串变量中。
谁能帮助我将 xml 转换为 json,同时保留数据类型?下面是代码
import org.json.*;
public class XmlToJson {
private static String xmlCode =
"<handler>
<price>10</price>
<item>rice</item>
<VALUE>3434</VALUE>
</handler>
<flow>
</flow>";
public static void main(String[] args) throws JSONException{
JSONObject xmlJsonObj=null;
xmlJsonObj = XML.toJSONObject(xmlCode);
System.out.println(xmlJsonObj.toString(1));
}
}
示例输出:
{
"flow": "",
"handler": {
"VALUE": "3434",
"item": "rice",
"price": "10"
}
}
预期的行为是:
{
"flow": "",
"handler": {
"VALUE": 3434,
"item": "rice",
"price": 10
}
}
【问题讨论】:
-
我想知道代码怎么知道
10是一个int而不是一个字符串 -
我明白了。但是有没有办法解析转换后的 json 以搜索原始数据类型并将它们转换回其原始类型?我的要求是...... :-)
-
我放弃尝试格式化,那是你覆盖格式化的 2 次。