zoukankan      html  css  js  c++  java
  • com.google.gson json字符串的序列化与反序列化

      经常做协议的时候用到json,个人习惯是定义协议文档,很少在这中场景中定义类,使用对象.

      这里使用一个人物有名字,性别,有一个物品列表做个简单示例记录.

      序列化

            JsonObject jo=new JsonObject();
        	jo.addProperty("Name", "testName");
        	jo.addProperty("Sex", "男");
        	JsonArray jArr=new JsonArray();
        	for(int i=0;i<3;i++)
        	{
        		JsonObject item=new JsonObject();
        		item.addProperty("ItemID", i);
        		item.addProperty("ItemName", "name"+i);
        		jArr.add(item);
        	}
        	jo.add("Items",jArr);
        	Logger.info("json:"+jo.toString());   
    

      反序列化

            JsonParser jp=new JsonParser();
        	JsonObject jo2= jp.parse(jo.toString()).getAsJsonObject();
        	System.out.print("json name:"+jo2.get("Name").getAsString());
        	System.out.print("json sex:"+jo2.get("Sex").getAsString());
        	JsonArray jArr2=jo2.getAsJsonArray("Items");
        	for(int i=0;i<jArr2.size();i++)
        	{
        	  Logger.info("ItemID:"+jArr2.get(i).getAsJsonObject().get("ItemID").getAsInt());
        	  Logger.info("ItemName:"+jArr2.get(i).getAsJsonObject().get("ItemName").getAsString());
        	}    
    

      java代码比起c#来说,还是繁琐了挺多.不过跨平台,各种开源,各种产品,少了很多局限性和束缚.

  • 相关阅读:
    指针常量 和 常量指针
    串口通讯
    C语言的抽象与函数指针2
    STM32 中常见错误 的处理方法
    串行通信之狂扯篇
    VMware中虚拟机网卡的四种模式
    VSFTP配置虚拟用户
    MySQL数据库备份命令
    rsync Linux系统下的数据镜像备份工具
    linux常用命令
  • 原文地址:https://www.cnblogs.com/dreamzgj/p/5814849.html
Copyright © 2011-2022 走看看