首页 > 代码库 > 数据处理json格式以及java编写注意事项

数据处理json格式以及java编写注意事项

我们先来学习下JSON定义:

(1).JSON是一种轻量级的数据交换格式

(2).JSON基于两种数据结构:Object和Array。其中Object是“名称/值”对的集合。

(3).对象:大括号,每一组string-value结合以","分隔,string和value以冒号分隔。

JSON数据格式,在Android中被广泛运用于客户端和网络(或者说服务器)通信,非常有必要系统的了解学习。


JSON解析
(1).解析Object之一:

{"url":"http://zebra.com"}

 解析方法:

<span style="font-size:18px;"><code class="java plain">JSONObject demoJson = </code><code class="java keyword"><span style="color:#0000ff;">new</span></code> <code class="java plain">JSONObject(jsonString); </code></span><div class="container"><div class="line number2 index1 alt1"><span style="font-size:18px;"><code class="java plain">String url = demoJson.getString(</code><code class="java string"><span style="color:#0000ff;">"url"</span></code><code class="java plain">);</code></span></div></div>

(2).解析Object之二:

<span style="font-size:18px;">{"name":"android","name":"iphone"}</span>
 解析方法:
<span style="font-size:18px;">JSONObject demoJson = new JSONObject(jsonString);
String name = demoJson.getString("name");
String version = demoJson.getString("version");
System.out.println("name:"+name+",version:"+version);</span>

(3).解析Array之一:

<span style="font-size:18px;">{"number":[1,2,3]}</span>
 解析方法:

<span style="font-size:18px;">JSONObject demoJson = new JSONObject(jsonString);
JSONArray numberList = demoJson.getJSONArray("number");
for(int i=0; i<numberList.length(); i++){
    //因为数组中的类型为int,所以为getInt,其他getString,getLong同用
    System.out.println(numberList.getInt(i));
}</span>
(4).解析Array之二:

<span style="font-size:18px;">{"number":[[1],[2],[3]]}</span>
解析方法:

<span style="font-size:18px;">//嵌套数组遍历
JSONObject demoJson = new JSONObject(jsonString);
JSONArray numberList = demoJson.getJSONArray("number");
for(int i=0; i<numberList.length(); i++){
      //获取数组中的数组
      System.out.println(numberList.getJSONArray(i).getInt(0));
}</span>
(5).解析Object和Array:

<span style="font-size:18px;">{"mobile":[{"name":"android"},{"name":"iphone"}]}</span>
解析方法:

<span style="font-size:18px;">JSONObject demoJson = new JSONObject(jsonString);
JSONArray numberList = demoJson.getJSONArray("mobile");
for(int i=0; i<numberList.length(); i++){
      System.out.println(numberList.getJSONObject(i).getString("name"));
}</span>
所以,我们发现get后面接着的是你想要的得到的结果的类型:getType,这个对理解很有帮助。
(6).使用optType:
上面的例子,使用getType在碰到查找不到节点的时候,会抛出异常。
如果使用optType,找不到节点,则返回null或者默认值。

<span style="font-size:18px;">//无url节点,抛出异常
String url = demoJson.getString("url");
//无url节点,返回空,如果为基本类型,则返回默认值
String url = demoJson.optString("url");</span>

以上就是我们常用的JSON封装方法,下面是我自己项目用的代码,备份:

<span style="font-size:18px;">JSONObject ob = new JSONObject();
ob.put("list", list);
// System.out.println(ob.toString());
out.write(js.toString());
//最后别忘了flush掉
if(out != null){
    out.flush;
    out.close;
}</span>

大体json在项目中用的也就这么多,很简单,主要是注意从SQL中提取的数据格式问题,select * 拿出来的数据是不对的,今天就这样。

数据处理json格式以及java编写注意事项