複雑な要素のセットが多数含まれているサンプルのJsonファイルを再帰的に解析しようとしています。そして私が試しているコードはこれです:
public class Jsonex {
public static void main(String argv[]) {
try {
Jsonex jsonExample = new Jsonex();
jsonExample.testJackson();
} catch (Exception e){
System.out.println("Exception " + e);
}
}
public static void testJackson() throws IOException {
JsonFactory factory = new JsonFactory();
// System.out.println("hello");
ObjectMapper mapper = new ObjectMapper(factory);
File from = new File("D://albumList.txt");
TypeReference<HashMap<String,Object>> typeRef = new TypeReference<HashMap<String,Object>>() {};
HashMap<String,Object> o= mapper.readValue(from, typeRef);
// System.out.println("" + o);
Iterator it = o.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
System.out.println(pairs.getKey() + " = " + pairs.getValue());
HashMap<String,Object> o1=mapper.readValue(pairs.getValue().toString(),typeRef);
System.out.println("hey"+o1);
Iterator it1 = o1.entrySet().iterator();
while (it1.hasNext()) {
Map.Entry pairs1 = (Map.Entry)it.next();
System.out.println(pairs1.getKey() + " = " + pairs1.getValue());
it1.remove(); // avoids a ConcurrentModificat
}
}
}}
そして私はこの例外を受け取ります:
例外org.codehaus.jackson.JsonParseException:予期しない文字('i'(コード105)):[ソース:java.io.StringReader@2de7753a;でフィールド名を開始するために二重引用符が必要でした。行:1、列:3]
実際に私がやろうとしているのは、ファイルを解析して名前オブジェクトのペアのリストを取得し、名前とオブジェクトのペアを持つオブジェクトを取得することです。-しかし、問題は、パーサーが文字列の前に「」を期待していることです。