dsl json java_Java DslJson类代码示例

import com.dslplatform.json.DslJson; //导入依赖的package包/类

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

DslJson dslJson = DSL.JSON();

//it's best to reuse writer if possible

//since only a single serialization in Android is done concurrently

//a good practice is to have a static field with a synchronized guard

JsonWriter writer = dslJson.newWriter();

ByteArrayOutputStream os = new ByteArrayOutputStream();

Model instance = new Model();

instance.number = 42;

instance.string = "Hello World!";

instance.integers = Arrays.asList(1, 2, 3);

instance.decimals = new HashSet(Arrays.asList(BigDecimal.ONE, BigDecimal.ZERO));

instance.uuids = new UUID[]{new UUID(1L, 2L), new UUID(3L, 4L)};

instance.longs = new Vector(Arrays.asList(1L, 2L));

instance.nested = Arrays.asList(new Model.Nested(), null);

instance.inheritance = new Model.ParentClass();

instance.inheritance.a = 5;

instance.inheritance.b = 6;

instance.person = new ImmutablePerson("first name", "last name", 35);

instance.states = Arrays.asList(Model.State.HI, Model.State.LOW);

instance.jsonObject = new Model.JsonObjectReference(43, "abcd");

instance.jsonObjects = Collections.singletonList(new Model.JsonObjectReference(34, "dcba"));

instance.date = new Date();

instance.dates = Arrays.asList(null, new Date(0));

Model.Concrete concrete = new Model.Concrete();

concrete.x = 11;

concrete.y = 23;

instance.abs = concrete;

instance.absList = Arrays.asList(concrete, null, concrete);

instance.decimal2 = BigDecimal.TEN;

instance.intList = new ArrayList(Arrays.asList(123, 456));

instance.map = new HashMap();

instance.map.put("abc", 678);

instance.map.put("array", new int[] { 2, 4, 8});

try {

//serialize into writer

dslJson.serialize(writer, instance);

//after serialization is done we can copy it into output stream

writer.toStream(os);

ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray());

//deserialized using stream API. temporary buffer is passes which should be reused if possible

Model deserialized = dslJson.deserialize(Model.class, is, new byte[1024]);

Toast.makeText(this, deserialized.string, Toast.LENGTH_LONG);

} catch (IOException ex) {

Toast.makeText(this, ex.getMessage(), Toast.LENGTH_LONG);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值