Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将json数组转换为hashmap<;字符串,对象>;_Java_Jackson - Fatal编程技术网

Java 将json数组转换为hashmap<;字符串,对象>;

Java 将json数组转换为hashmap<;字符串,对象>;,java,jackson,Java,Jackson,我有一个外部解析列表类型,它是一个json数组,实际上是这个调用 list.toString() 给我这个: [{name=prop1, content=<something>},{name=prop2, content=<something>}] [{name=prop1,content=},{name=prop2,content=}] 内容可以是任何内容,一个数组,一个字符串,一个整数。。。 所以我想把这个json数组映射到 HashMap<String,

我有一个外部解析列表类型,它是一个json数组,实际上是这个调用

list.toString()
给我这个:

[{name=prop1, content=<something>},{name=prop2, content=<something>}]
[{name=prop1,content=},{name=prop2,content=}]
内容可以是任何内容,一个数组,一个字符串,一个整数。。。 所以我想把这个json数组映射到

HashMap<String,Object> converted;
HashMap转换;
这将允许我这样做:

converted.get("prop1"); //this will give me the <something>
converted.get(“prop1”)//这将给我一个机会

我该怎么做呢?

试试使用JSON解析器。从这里获取JSON库

Map Map=newhashmap();
JSONParser=新的JSONParser();
试一试{
objectobj=parser.parse(列表);
JSONArray JSONArray=(JSONArray)obj;
迭代器迭代器=jsonArray.Iterator();
while(iterator.hasNext()){
JSONObject jsonObj=iterator.next();
字符串名称=(字符串)jsonObject.get(“名称”);
objectcontent=(Object)jsonObject.get(“content”);
地图放置(名称、内容);
}
}catch(p){}

小心,这不是JSON。我相信你不能直接这么做。。。要么通过解析器,创建POJO,要么直接解析JSON它是一个JSON数组,为什么它不是JSON?如果它们只是字符串,你可以使用类似[MapSplitter](./guava/src/com/google/common/base/)的东西。仅仅因为它有
[]
{}
,并不意味着它是JSON。查看。不。我忘了添加解析代码…现在我已经编辑了我的代码
Map<String, Object> map = new HashMap<>();

JSONParser parser = new JSONParser();

try {

  Object obj = parser.parse(list);

  JSONArray jsonArray = (JSONArray)obj;

  Iterator<JSONObject> iterator = jsonArray.iterator();
  while (iterator.hasNext()) {
       JSONObject jsonObj = iterator.next();
      String name = (String) jsonObject.get("name");
       Object content = (Object) jsonObject.get("content");
       map.put(name, content);
  }
} catch (ParseException p) { }