問題は、コードの関連するスニペットです:無効なJSONをレスポンスから作成された文字列を読み取るためにJackon ObjectMapperを使用し
Response response = request.get();
String responseAsString = response.readEntity(String.class);
ObjectMapper mapper = new ObjectMapper();
JsonNode responseNode = mapper.readTree(responseAsString);
このコードを実行すると、次の例外が発生します。com.fasterxml.jackson.core.JsonParseException: Unexpected character ('-' (code 45)): was expecting comma to separate OBJECT entries
問題の背景: GET要求を出しており、正常に応答しています。そのレスポンスをStringに変換して、それをJsonNodeに変更して、必要な部分を抽出することができます。私はそれがこのようになりますresponseAsStringプリントアウトする場合:
{
"account": 123456789,
"balance": 5602,
"dateTime": 2017-06-15T03:29:00,
"token": "H77ABC0PPIQ"
}
を私は問題はないすべての値のは、文字列として送信されますので、応答がどのように形成されるかに起因していると信じています。私は例えば口座番号などの個々の値を得ることができるようにJSONオブジェクトに応答を変換するかどうかはわかりません
account: long
balance: long
dateTime: DateTime
token: String
次のように彼らの種類があります。
アドバイスありがとうございます。ありがとう!
無効JSONです。日付は引用符で囲む必要があります。 –
そうですね、間違って質問したことがあります。私は応答を取得し、toStringを実行すると、それは私が得るものです - 無効なJSON。オブジェクトマッパーを使用したり、有効なJSONにするにはどうすればよいですか?ありがとう – SuperCow
ObjectMapperはJSONを解析します。あなたが持っているものがJSONでない場合、それを解析することはできません。ソースに移動し、JSONを修正してください。あるいは、この非JSONを解析できる他のものを使用してください。 –