私はJson形式の文字列を持っていますが、キーや値のいずれも引用符で囲まれていません。私はこれがそうのように見えるマップになりたい引用符なしのjson文字列をマップに変換する
String json = "{name: Bob, state: Colorado, Friends: [{ name: Dan, age: 23 }, {name: Zane, age: 24 }]}"
:
Map<String, Object> friend1Map = new HashMap<>();
friend1Map.put("name", "Dan");
friend1Map.put("age", 23);
Map<String, Object> friend2Map = new Hashmap<>();
friend2Map.put("name", "Zane");
friend2Map.put("age", 24);
Map<String, Object> newMap = new HashMap<>();
newMap.put("name", "Bob");
newMap.put("state", "Colorado");
newMap.put("Friends", Arrays.asList(friend1Map, friend2Map));
私は次の二つの方法試してみました:
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(json, new TypeReference<Map<String, Object>>() {});
この意志を例えば、私はこれを持っていますエラーを投げて、
Unexpected character ('n'): was expecting double-quote to start field name
mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
mapper.readValue(json, new TypeReference<Map<String, Object>>() {});
しかし、これはというエラーがスローされました:10は、それから私はマッパーの設定を変更しようとした
com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'Bob': was expecting ('true', 'false' or 'null')
at [Source: {name: Bob, state: Colorado, Friends: [{ name: Dan, age: 23 }, {name: Zane, age: 24 }]}; line: 1, column: 11]
は引用符をJSON文字列に含まれていない場合は、この地図を取得する方法はありますか?
あなたのJson Stringは無効です。ここでそれをテストしてください:http://jsonlint.com –
どうですか?このコメントには1532文字を追加する必要があります。 – user2869231
、またはそれを有効にするにはどうすればよいですか?明らかに、この問題は引用符を持たないことにあります。私はいくつかの厄介な分割を行う必要がありますか? – user2869231