-1
のリストにJSONを変換しますJsonNodeが、私はこの形式のJSON持つ文字列
{
"success": 1,
"value": "[\"1-1\",\"1-2\",\"1-3\"]"
}
成功がint
に実際にあると値がString
のList
ですが、私は値を取得したいとそれらの要素をList<String>
に入れてください。文字列のリストは次のようになります。
1-1
1-2
1-3
は、私が実際にJsonNodeを使用して全体のJSONを解析したいが、そうすることから私を制限する問題は、次のとおりです。
"[\"1-1\",\"1-2\",\"1-3\"]"
はそう、二重引用符でラップされ はStringとして扱われるかもしれません。- 以下は、私が試した私の回避策ですへの(それは正規表現のない方が良い、ちょうどJsonNodeに全体JSONをパース)より良い/エレガントな方法があり、文字列にバックスラッシュを取り除くために
を持っていますそうする?
ObjectMapper mapper= new ObjectMapper();
JsonNode response = mapper.readTree(payload); //payload is the json string
JsonNode success = response.get("success");
JsonNode value = response.get("value");
if (success.asBoolean()) {
String value = value .toString();
value = value .replaceAll("\"", "").replaceAll("\\[", "").replaceAll("\\]", "")
.replace("\\", "");
return Arrays.asList(value .split(","));
}
こんにちは、お手数をおかけしていただきありがとうございます。投稿したサンプルは、先頭と末尾の二重引用符の問題を解決することができますか?私は試したので、jsonから 'List'まで解析できないようです。 'VALUE_STRINGトークンからjava.util.ArrayListのインスタンスを逆シリアル化できません [ソース:" [\ "1-1 \"、\ "1-2 \"、\ "1-3 \"]」; " –
hades
'mapper.readValue'はあなたの' payload'変数のようにJSON文字列を受け入れます。おそらくそれは単にTypeReferenceを持たないmapper.readTree(response.get( "value")。toString()); 'ですが、リストではなくJsonNodeを返します。 –
@hades –