【问题标题】:Flatten Map with GSON使用 GSON 展平地图
【发布时间】:2014-05-06 10:55:41
【问题描述】:

假设我有以下Map<String, String> 的值:v1: 2, v2: 5, v3: 0, v4: -9 ...

键是v1 - vn,但我不知道编译时 n 的确切值。

如何将所有这些键放入 JSON 对象,如下所示:

"item": { "v1": 2, "v2": 5, "v3": 0, "v4": -9 }

所以基本上我想把它们弄平。 有什么想法吗?

【问题讨论】:

  • 你检查this了吗?

标签: json map gson


【解决方案1】:

您要生成的 JSON 无效,因为每个 JSON 字符串都是一个对象(以 {) 开头或数组(以 [ 开头)。所以您可以达到的最接近的东西是这样的:

{"item": { "v1": 2, "v2": 5, "v3": 0, "v4": -9 }}

这段代码使用 N = 10 的 N 个值完成此操作

package stackoverflow.questions.q23492756;

import java.util.*;

import com.google.gson.Gson;

public class Q23492756 {

    public static void main(String[] args){
        Map<String, Object> map = new HashMap<>();

        for(int i = 0; i < 10; i++){
            map.put("v"+i, i);
        }

        Map<String, Object> newMap = new HashMap<>();
        newMap.put("item", map);

        Gson g = new Gson();
        String s = g.toJson(newMap);

        System.out.println(s);

    }

}

这就是结果(注意键是无序的,因为它是一个地图)

{"item":{"v1":1,"v0":0,"v7":7,"v5":5,"v6":6,"v4":4,"v9":9,"v3":3,"v8":8,"v2":2}}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 2015-04-18
    • 1970-01-01
    • 2021-02-01
    • 2020-07-06
    相关资源
    最近更新 更多