【JAVA基础】浅谈JSON这种数据格式

JSON是AJAX中的X(就是可以取代XML) ——出自JSON创始人

json是一种数据格式。但是JSONObject类常见使用的有两种。
一、net.sf.json.JSONObject
该种需要很多关联jar包,详情参阅如下链接

http://blog.csdn.net/salonzhou/article/details/36682981

二、org.json.JSONObject
以下我们的代码例子中使用的方法都是基于这种JSONObject。

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
形如这样的数据格式↓

//↓ 不包含json对象数组
{
   "SendTransCode":"MELEGenerateRand",  
   "ChannelHeadRequest":{
      "ChannelId":"11",
      "ChannelDate":"20160511",
      "ChannelJnlNo": "6a6a1cbe458444108f85bb8530b6fe32"
    }
   "RandType":"1",
   "EProtocolAcNo":"111111111111111111"
}

//↓ 包含json对象数组
{
   "SendTransCode": "MELEGenerateRand",  
   "ChannelHeadRequest": [   
      {"ChannelId":"11"},
      {"ChannelDate":"20160511"},
      {"ChannelJnlNo":"6a6a1cbe458444108f85bb8530b6fe32"}
    ],
   "RandType":"1",
   "EProtocolAcNo":"111111111111111111"
}
  • 数据在键值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

讨论完结构。我们来看看JSON格式的数据是如何通过java代码组装的吧。
首先需要 org.json的包

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class TestJSON {
     public static void main(String[] args) throws JSONException {
            JSONObject member1 = new JSONObject();  
            member1.put("loginname", "zhangfan");  
            member1.put("password", "userpass");  
            member1.put("email","10371443@qq.com");  
            member1.put("sign_date", "2007-06-12");  

            JSONObject member2 = new JSONObject();  
            member2.put("loginname", "zf");  
            member2.put("password", "userpass");  
            member2.put("email","8223939@qq.com");  
            member2.put("sign_date", "2008-07-16");  

            JSONArray jsonMembers = new JSONArray(); 
            jsonMembers.put(member1);  
            jsonMembers.put(member2);  

            JSONObject json=new JSONObject();  
            json.put("users", jsonMembers); //将json数组作为"json"这个json对象"users"这个key对应的value.

            System.out.println(json);
    }
}

以上比较简单就不在赘述。

那么如何解析json格式的数据呢,从复杂的json格式中去到自己想要的value.
下面的代码我们讨论的是在json格式或者内容已知的情况下的解析

String jsonString = "{\"users\":[{\"loginname\":\"zhangfan\",\"password\":\"userpass\",\"email\":\"10371443@qq.com\"},"
                + "{\"loginname\":\"zf\",\"password\":\"userpass\",\"email\":\"822393@qq.com\"}]}";

        JSONObject jsonO = new JSONObject(jsonString);
        JSONArray users = jsonO.getJSONArray("users");   //获取json对象中
        for(int i=0;i<users.length();i++){
            JSONObject user = (JSONObject)users.get(i);
            String name = (String)user.get("loginname");
            System.out.print(name+ "  ");
        }

如果JSON格式未知,那么就不能这样来玩了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值