JSON(二)——JSON変換(GSON)

1831 ワード

前編では、JSONは軽量レベルで効率的なデータ転送フォーマットですが、JsonとJavaオブジェクトの間で、どのように変換すればいいのでしょうか.
通常多く使用されるクラスライブラリはGSONとFastJsonである.
一、GSON
GSONはGoogleがJavaオブジェクトとJSONデータを変換するためのクラスライブラリで、Json文字列をJavaオブジェクトに変換したり、JavaオブジェクトをJSON文字列に変換したりすることができます.
1、直接new Gson対象
//  new  
Gson gson = new Gson();
String gsonStr = "{\"id\":1,\"flowRoleId\":1,\"flowRoleName\":\"   \",\"userId\":82,\"userName\":\"  \"}";
String gsonList = "[{\"id\":1,\"flowRoleId\":1,\"flowRoleName\":\"   \",\"userId\":82,\"userName\":\"   \"},{\"id\":2,\"flowRoleId\":2,\"flowRoleName\":\"   \",\"userId\":83,\"userName\":\"  \"},{\"id\":3,\"flowRoleId\":2,\"flowRoleName\":\"   \",\"userId\":77,\"userName\":\"   \"}]";

List listFlow = new ArrayList<>();
FlowRoleUser flowRoleUser1 = new FlowRoleUser();
flowRoleUser1.setFlowRoleName("  ");
FlowRoleUser flowRoleUser2 = new FlowRoleUser();
flowRoleUser2.setFlowRoleName("   ");
flowRoleUser2.setUserName("  ");
listFlow.add(flowRoleUser1);
listFlow.add(flowRoleUser2);
  • fromJson

  • Json文字列をJavaBeanに変換
    FlowRoleUser flowRoleUser = gson.fromJson(gsonStr, FlowRoleUser.class);
  • toJson

  • JavaBeanをJson文字列に変換
    String jsonStr2 = gson.toJson(flowRoleUser2, FlowRoleUser.class);
  • シーケンス化List
  • String jsonList = gson.toJson(listFlow);
  • 逆シーケンス化List
  • List list = gson.fromJson(gsonList, new TypeToken>(){}.getType());