に私は、そのフォーマットのようになりますJSONを解析しようとしています。ただし、ユーザー数は不明です。私がやりたい何解析JSONは、Java 2-Dアレイ
は、2次元配列
String[][] users = new String[USER_AMOUNT][2];
(user_nameとZIP_CODE 2)
で自分配列に、各ユーザーとそのデータを割り当てている方法はありますJSONの指定された形式でそれを行うには?
に私は、そのフォーマットのようになりますJSONを解析しようとしています。ただし、ユーザー数は不明です。私がやりたい何解析JSONは、Java 2-Dアレイ
は、2次元配列
String[][] users = new String[USER_AMOUNT][2];
(user_nameとZIP_CODE 2)
で自分配列に、各ユーザーとそのデータを割り当てている方法はありますJSONの指定された形式でそれを行うには?
はい、方法があります.Gsonライブラリを使用して同じことを達成できます。
まず、Jsonと同じフィールドを持つPOJO(Plain Old Java Object)を定義します。その後、
public class User {
private String user_name;
private String zip_code;
public String getZip_code() {
return zip_code;
}
public void setZip_code(String zip_code) {
this.zip_code = zip_code;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
}
とドライバクラスを記述します。
import com.google.gson.Gson;
public class JsonToJavaObjMapper {
public static void main(String[] args) {
String jsonString = "{\"user_name\":\"Azim\",\"zip_code\":null}";
Gson gson = new Gson();
User fromJson = gson.fromJson(jsonString, User.class);
System.out.println(fromJson.getUser_name() + " " + fromJson.getZip_code());
}
}
は、あなたのクラスパスにgsonジャーを含めると、上記のクラスを実行します。
出力:
Azim null
たぶん、コードのこの作品は、あなたに役立つだろう。
String [] []ユーザーを本当に戻したい場合は、シリアライザまたはデシリアライザを使用してそれを達成する必要があります。
String jsonString = "[{\"user_name\":\"Azim\",\"zip_code\":67890},{\"user_name\":\"Smith\",\"zip_code\":12345}]";
String[][] users = oson.des(String[].class, (Object p) -> StringUtil.list2Array(((Map)p).values()))
.deserialize(jsonString, String[][].class);
String json = oson.serialize(users);
String expected = "[[\"Azim\",\"67890\"],[\"Smith\",\"12345\"]]";
assertEquals(expected, json);
の可能性のある重複した[JavaでJSONをパースする方法](http://stackoverflow.com/questions/2591098/how-to-parse-json-in-java) –
:私はこれを行うためにOson libraryを使用しましたJacksonまたはGSONを使用 – HARDI
簡単に答えるには、2Dまたは多次元配列を使用しないでください。 'User'クラスを作ります。次に、 'User []'を格納します。 –