android bundle json,java - Convert JSON to Android Bundle - Stack Overflow

This is late, but maybe it helps someone finding this thread:

/** Convert a JSON object to a Bundle that can be passed as the extras of

* an Intent. It passes each number as a double, and everything else as a

* String, arrays of those two are also supported. */

public static Bundle fromJson(JSONObject s) {

Bundle bundle = new Bundle();

for (Iterator it = s.keys(); it.hasNext(); ) {

String key = it.next();

JSONArray arr = s.optJSONArray(key);

Double num = s.optDouble(key);

String str = s.optString(key);

if (arr != null && arr.length() <= 0)

bundle.putStringArray(key, new String[]{});

else if (arr != null && !Double.isNaN(arr.optDouble(0))) {

double[] newarr = new double[arr.length()];

for (int i=0; i

newarr[i] = arr.optDouble(i);

bundle.putDoubleArray(key, newarr);

}

else if (arr != null && arr.optString(0) != null) {

String[] newarr = new String[arr.length()];

for (int i=0; i

newarr[i] = arr.optString(i);

bundle.putStringArray(key, newarr);

}

else if (!num.isNaN())

bundle.putDouble(key, num);

else if (str != null)

bundle.putString(key, str);

else

System.err.println("unable to transform json to bundle " + key);

}

return bundle;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值