Gson,FastJson,JackJson,ProtoBufデータフォーマット変換の詳細


1、Gson
に頼る
implementation 'com.google.code.gson:gson:2.8.6'
Gson gson = new Gson();

エンティティークラス(Bean)回転JSON
String json = gson.toJson(new Bean());

JSONトランスソリッドクラス(Bean)
Bean b = gson.fromJson('json',Bean.class);

Map回転Json
gson.toJson(map)

Json回転Map
Map map = gson.fromJson("json",new TypeToken>() {}.getType());

List回転JSON
LList list = new ArrayList<>();
list.add(new Bean());
gson.toJson(list)

JSON転送リスト
List list = gson.fromJson('json',new TypeToken>(){}.getType());

2、FastJson
に頼る
implementation 'com.alibaba:fastjson:1.2.70'

エンティティークラス(Bean)回転JSON
JSON.toJSONString(new Bean())

JSONトランスソリッドクラス(Bean)
Bean b = JSON.parseObject('json',Bean.class);

Map回転Json
JSON.toJSONString('map')

Json回転Map
JSONObject  jsonObject = JSONObject.parseObject(JSON.toJSONString(new Bean()));
Map map = (Map)jsonObject;
Object object = map.get("array");

List回転JSON
 List list = new ArrayList<>();
 list.add(new Bean());
 JSON.toJSONString(list)

JSON転送リスト
JSON.parseArray('json',Bean.class);

3、JackJson
に頼る
implementation 'com.fasterxml.jackson.core:jackson-databind:2.11.0'

throws JsonProcessingExceptionが必要
private static ObjectMapper MAPPER = new ObjectMapper();
エンティティークラス(Bean)回転JSON
MAPPER.writeValueAsString(new Bean())

JSONトランスソリッドクラス(Bean)
MAPPER.readValue('json', Bean.class)

Map回転Json
MAPPER.writeValueAsString('map')

Json回転Map
Map map = MAPPER.readValue('json',Map.class);

List回転JSON
List list = new ArrayList<>();
list.add(new Bean()); 
String ljson = MAPPER.writeValueAsString(list);

JSON転送リスト
MAPPER.readValue('json', ArrayList.class)

4、ProtoBuf
構成依存構成表示demo
implementation 'com.googlecode.protobuf-java-format:protobuf-java-format:1.2'

ProtoBuf回転Json
BeanBuf beanBuf = BeanBuf.newBuilder().setName("  ").build();
String jsonFormat = JsonFormat.printToString(beanBuf);

Json回転ProtoBuf
BeanBuf bean = BeanBuf.newBuilder().build();
JsonFormat.merge('json', bean.toBuilder());

Protoシーケンス化
BeanBuf bean = BeanBuf.newBuilder().setAge(11111111).build();
byte[] byteArray1 = bean.toByteArray();
Arrays.toString(byteArray1)

Proto逆シーケンス化
BeanBuf bean = BeanBuf.newBuilder().setAge(11111111).build();
try {
    BeanBuf buf = BeanBuf.parseFrom(bean.toByteArray());
    mBinding.textView.setText(buf.toString());
} catch (IOException e) {
    e.printStackTrace();
}

本明細書のソース番号FormatConversionExample