【问题标题】:Using JSON to return a Java Map使用 JSON 返回 Java Map
【发布时间】:2010-10-28 17:41:51
【问题描述】:

使用 JSON 格式返回 Java 地图的最佳方式是什么? 我的具体需求是日期和数字之间的键 -> 值关联。

我担心的是:我的结构基本上包含 N 个相同类型的元素(日期和数字之间的映射),我希望能够在 Javascript 中快速迭代它们。

在 XML 中,我会:

<relation date='mydate' number='mynumber'/>
<relation date='mydate' number='mynumber'/>
...
<relation date='mydate' number='mynumber'/>

我会像这样使用 jQuery:

$(xml).find("relation").each(function() {
    $(this).attr("date"); // the date
    $(this).attr("number"); // the number
})

这是我第一次使用 JSON,我想知道我是否可以做类似的事情。

【问题讨论】:

    标签: java json map


    【解决方案1】:

    虽然我自己没试过,但是Java implementation of JSON from json.orgJSONObject有一个JSONObject(Map)构造函数。

    一旦从Map创建了一个JSON对象,就可以通过调用toString方法得到一个JSON字符串。

    【讨论】:

    • 是的,这行得通(我也试过了——虽然主要是使用字符串 -> 字符串映射)
    【解决方案2】:
    String myJson = "{ ";
    for (String key : myMap.keySet())
        myJson += key + " : " + "'" + myMap.get(key) + "',";
    myJson += " } ";
    

    我留下最后一个逗号,因为它不会给我们带来很多问题。 javascript 只是忽略它。

    嗯,这回答了你的问题,但我想这不会有太大帮助。尝试发布更具体的。

    【讨论】:

    • 嗯...当存在好的库时自己构建 JSON 字符串(请参阅 stackoverflow.com/questions/906530/…)不一定是 最佳 方式,恕我直言。
    • 更重要的是,这在某些情况下无法生成正确的 JSON,例如当字符串包含 ' 字符时。 (这不会通过引用密钥来解决,您现在不这样做。)
    猜你喜欢
    • 2017-03-30
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    相关资源
    最近更新 更多