我使用Java,我有一个JSON字符串:
{
"name" : "abc" ,
"email id " : ["abc@gmail.com","def@gmail.com","ghi@gmail.com"]
}
然后是我的Java地图:
Map<String, Object> retMap = new HashMap<String, Object>();
我想把所有来自JSONObject的数据存储在那个HashMap中。
有人能为此提供代码吗?我想用org。json库。
我使用Java,我有一个JSON字符串:
{
"name" : "abc" ,
"email id " : ["abc@gmail.com","def@gmail.com","ghi@gmail.com"]
}
然后是我的Java地图:
Map<String, Object> retMap = new HashMap<String, Object>();
我想把所有来自JSONObject的数据存储在那个HashMap中。
有人能为此提供代码吗?我想用org。json库。
当前回答
使用Jackson转换:
JSONObject obj = new JSONObject().put("abc", "pqr").put("xyz", 5);
Map<String, Object> map = new ObjectMapper().readValue(obj.toString(), new TypeReference<Map<String, Object>>() {});
其他回答
使用JSON -simple,您可以将数据JSON转换为映射和映射到JSON。
try
{
JSONObject obj11 = new JSONObject();
obj11.put(1, "Kishan");
obj11.put(2, "Radhesh");
obj11.put(3, "Sonal");
obj11.put(4, "Madhu");
Map map = new HashMap();
obj11.toJSONString();
map = obj11;
System.out.println(map.get(1));
JSONObject obj12 = new JSONObject();
obj12 = (JSONObject) map;
System.out.println(obj12.get(1));
}
catch(Exception e)
{
System.err.println("EROR : 01 :"+e);
}
想象一下你有如下的邮件列表。不受任何编程语言的限制,
emailsList = ["abc@gmail.com","def@gmail.com","ghi@gmail.com"]
下面是JAVA代码-用于将json转换为map
JSONObject jsonObj = new JSONObject().put("name","abc").put("email id",emailsList);
Map<String, Object> s = jsonObj.getMap();
这是一个老问题,但可能仍然与某些人有关。 假设你有字符串HashMap hash和JsonObject JsonObject。
1)定义键列表。 例子:
ArrayList<String> keyArrayList = new ArrayList<>();
keyArrayList.add("key0");
keyArrayList.add("key1");
2)创建foreach循环,从jsonObject中添加哈希:
for(String key : keyArrayList){
hash.put(key, jsonObject.getString(key));
}
这就是我的方法,希望它能回答问题。
有一个使用javax的旧答案。json发布在这里,然而它只转换JsonArray和JsonObject,但仍然有JsonString, JsonNumber和JsonValue包装类在输出。如果你想摆脱这些,这是我的解决方案,它会打开所有东西。
除此之外,它还使用Java 8流,并包含在单个方法中。
/**
* Convert a JsonValue into a “plain” Java structure (using Map and List).
*
* @param value The JsonValue, not <code>null</code>.
* @return Map, List, String, Number, Boolean, or <code>null</code>.
*/
public static Object toObject(JsonValue value) {
Objects.requireNonNull(value, "value was null");
switch (value.getValueType()) {
case ARRAY:
return ((JsonArray) value)
.stream()
.map(JsonUtils::toObject)
.collect(Collectors.toList());
case OBJECT:
return ((JsonObject) value)
.entrySet()
.stream()
.collect(Collectors.toMap(
Entry::getKey,
e -> toObject(e.getValue())));
case STRING:
return ((JsonString) value).getString();
case NUMBER:
return ((JsonNumber) value).numberValue();
case TRUE:
return Boolean.TRUE;
case FALSE:
return Boolean.FALSE;
case NULL:
return null;
default:
throw new IllegalArgumentException("Unexpected type: " + value.getValueType());
}
}
使用Gson,你可以做以下事情:
Map<String, Object> retMap = new Gson().fromJson(
jsonString, new TypeToken<HashMap<String, Object>>() {}.getType()
);