2017-02-19 5 views
0

JavaオブジェクトをJSONの特定のフィールドを解析:ラッパークラスなし

public class Foo { 
@JsonProperty("name") 
private String name; 
@JsonProperty("surname") 
private String surname; 

// getters + setters 
} 

JSON:

{ 
    "meta":{ 
     "code":200 
    }, 
    "data":[ 
     { 
     "name":"John", 
     "surname":"Smith" 
     } 
    ] 
} 

APIの呼び出し:

return restTemplate.getForEntity(requestUrl, Foo[].class).getBody(); 

が、それは「データを解析することが可能です"追加のラッパークラスを作成せずに配列?私はJavaクラスの上に@JsonRootName("data")アノテーションを追加しようとしましたが、うまくいきませんでした。

+0

Gsonはかなり簡単にこれを行うことができます。 http://stackoverflow.com/questions/37231894/using-gson-and-retrofit-2-to-deserialize-complex-api-responses –

+0

さらに複雑に見える - 解析するための何百ものクラスを追加することは、私が探していることではない – Bravo

+0

何百もの?これは1つのTypeAdapterFactoryであり、Jacksonはカスタム逆シリアル化自体を持っています。 Javaはオブジェクト指向なので、クラスに対しては何がありますか? –

答えて

0

あなたはして試すことができます:

import org.json.*; 

JSONObject obj = new JSONObject(" .... "); 
String name = obj.getJSONObject("data").getString("name"); 
+0

ジャクソンがorg.jsonではなく使用されているようです –

関連する問題