假设我有以下Map<String, String>
个值:v1: 2, v2: 5, v3: 0, v4: -9 ...
键是v1 - vn
,但我不知道编译时n的确切值。
如何将所有这些键放入JSON对象中:
"item": { "v1": 2, "v2": 5, "v3": 0, "v4": -9 }
所以基本上我想要压扁它们。 有什么想法吗?
答案 0 :(得分:0)
您要生成的JSON无效,因为每个JSON字符串都是一个对象(以{)
或数组开头(以[
开头)。所以您可以达到的最接近的是类似这样:
{"item": { "v1": 2, "v2": 5, "v3": 0, "v4": -9 }}
此代码与N值完全相同,其中N = 10
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}}