相关疑难解决方法(0)

在JSON转换期间保持JSON键的顺序为CSV

我正在使用http://www.json.org/java/index.html提供的JSON库将我拥有的json字符串转换为CSV.但我遇到的问题是,转换后键的顺序会丢失.

这是转换代码:

    JSONObject jo = new JSONObject(someString);
    JSONArray ja = jo.getJSONArray("items");
    String s = CDL.toString(ja);
    System.out.println(s);
Run Code Online (Sandbox Code Playgroud)

这是"someString"的内容:

{
    "items":
    [
        {
            "WR":"qwe",
            "QU":"asd",
            "QA":"end",
            "WO":"hasd",
            "NO":"qwer"
        },
    ]
}
Run Code Online (Sandbox Code Playgroud)

这是结果:

WO,QU,WR,QA,NO
hasd,asd,qwe,end,qwer
Run Code Online (Sandbox Code Playgroud)

虽然我期望保持键的顺序:

WR,QU,QA,WO,NO
qwe,asd,end,hasd,qwer
Run Code Online (Sandbox Code Playgroud)

有什么方法可以使用这个库得到这个结果吗?如果没有,是否有任何其他库可以提供保持结果中键的顺序的功能?

java csv json

75
推荐指数
7
解决办法
14万
查看次数

Chrome和IE会自动排序JSON对象,如何禁用它?

我使用以下JSON使用JavaScript创建一些复选框.

{"5":"5.5\" x 8.5\"",
"11":"7\" x 10\"",
"4":"8.5\" x 11\"",
"8":"8.5\" x 14\"",
"12":"10\" x 7\"",
"2":"11\" x 8.5\"",
"10":"11\" x 17\"",
"6":"14\" x 8.5\"",
"9":"17\" x 11\""})
Run Code Online (Sandbox Code Playgroud)

用于创建这些复选框的JavaScript是:

for(id in dimensions) {
    $("#the_dimensions").append('<label class="checkbox">' + 
                                '<input type="checkbox" class="dimensions-filter" value="' + id + '">' +
                                dimensions[id] + '</label>');
}
Run Code Online (Sandbox Code Playgroud)

在Firefox上,将根据JSON对象中的顺序创建复选框.因此,"5":"5.5 \"x 8.5 \""成为第一个元素,"11":"7 \"x 10 \""成为第二个元素,依此类推.

但是在Chrome和IE上,JSON对象会按照键的升序自动排序.因此,"2":"11"x 8.5 \""成为第一个元素,"4":"8.5 \"x 11 \""成为第二个元素,依此类推.

如何在Chrome和IE上禁用自动排序?

javascript internet-explorer json google-chrome

2
推荐指数
1
解决办法
6692
查看次数

标签 统计

json ×2

csv ×1

google-chrome ×1

internet-explorer ×1

java ×1

javascript ×1