json解析之四种基本格式的解析

转载 2015年11月20日 11:07:19
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String str = "";
        JSONObject jsonObject = null;
        String json = "";


        //直接一个对象的解析
        json = "{\"username\":\"zms\",\"age\":43,\"addr\":\"江西省高安市村前镇\"}";
        try {
            jsonObject = new JSONObject(json);
            str = "名字:" + jsonObject.getString("username") + " 年龄:" + jsonObject.getString("age") + " 地点:" + jsonObject.getString("addr") + "\n";
            Log.d("tech_jsontest", str);
        } catch (JSONException e) {
            e.printStackTrace();
        }


        //对象里有数组
        str = "";
        json = "{\"username\":\"张木生\",age:11,\"jicheng\":[{\"zhengshu\":\"PMP\",\"date\":\"2011年\"},{\"zhengshu\":\"信息系统项目管理师\",\"date\":\"2012年\"}],\"addr\":\"江西\"}";
        try {
            jsonObject = new JSONObject(json);
            str = "名字:" + jsonObject.getString("username") + " 年龄:" + jsonObject.getString("age");
            JSONArray jichengArray = jsonObject.getJSONArray("jicheng");
            for (int i = 0; i < jichengArray.length(); i++) {
                JSONObject jsonJichengObj = (JSONObject) jichengArray.opt(i);
                str += " 级称" + String.valueOf(i + 1) + ": 证书:" + jsonJichengObj.getString("zhengshu")
                        + " 时间:" + jsonJichengObj.get("date") + "\n";
            }
            str += " 地点:" + jsonObject.get("addr") + "\n";
            Log.d("tech_jsontest", str);
        } catch (JSONException e) {
            Log.e("tech_jsontest", e.getMessage());
        }


        //直接一个数组
        str = "";
        json="[{\"devid\":\"1234567800\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\"},{\"devid\":\"1234567832\",\"latitude\":\"29.4943\",\"longitude\":\"1161.129\"}]";
        try {
            JSONArray jsonArrDevid = new JSONArray(json);
            for (int i = 0; i < jsonArrDevid.length(); i++) {
                JSONObject jsonObjDevid = (JSONObject) jsonArrDevid.get(i);
                str += "devid" + i + ": " + "编号:" + jsonObjDevid.getString("devid") + " 精度:"
                        + jsonObjDevid.getString("latitude") + " 纬度:" + jsonObjDevid.get("longitude")+
                         "\n";
            }
            Log.d("tech_jsontest", str);
        } catch (JSONException e) {
            Log.e("tech_jsontest", e.getMessage());
        }


        //数组里有数组
        str = "";
        json="["+
                "{\"devid\":\"1234567800\",\"gps\":[{\"time\":\"2014-11-12\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\"},{\"time\":\"2014-11-12\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\" }],\"devname\":\"赣01\"},"+
                " {\"devid\":\"1234567800\",\"gps\":[{\"time\":\"2014-11-12\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\"},{\"time\":\"2014-11-12\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\" }],\"devname\":\"赣92\"},"+
                " {\"devid\":\"1234567800\",\"gps\":[{\"time\":\"2014-11-12\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\"},{\"time\":\"2014-11-12\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\" }],\"devname\":\"赣43\"}"+
                "]";
        try {
            JSONArray jsonArrdevid = new JSONArray(json);
            for (int i = 0; i < jsonArrdevid.length(); i++) {
                JSONObject jsonObjdevid = (JSONObject) jsonArrdevid.get(i);
                str += "devid" + i + ": 编号:" + jsonObjdevid.get("devid");
                JSONArray jsonArrGps = jsonObjdevid.getJSONArray("gps");
                for (int j = 0; j < jsonArrGps.length(); j++) {
                    JSONObject jsonObjGps = (JSONObject) jsonArrGps.get(j);
                    str += " gps" + j + ": 时间:" + jsonObjGps.get("time")+
                           " 经度:" + jsonObjGps.getString("latitude") +
                           " 纬度:" + jsonObjGps.getString("longitude");
                }
                str += " 名称:" + jsonObjdevid.getString("devname") + "\n";
            }
            Log.d("tech_jsontest",str);

        } catch (JSONException e) {
            Log.e("tech_jsontest", e.getMessage());
        }


    }

}

相关文章推荐

JSONObject、JSONArray

最近两个星期接触最多的就是json和map了。    之前用到的json,就是一个键对应一个值,超级简单的一对一关系。现在用到的json那可以层层嵌套啊,刚开始接触的时候,确实有种崩溃的赶脚,不想去...

GPS数据包格式+数据解析

全球时区的划分:  每个时区跨15°经度。以0°经线为界向东向西各划出7.5°经度,作为0时区。即0时区的经度范围是7.5°W——7.5°E。从7.5°E与7.5°W分别向东、向西每15°经度划分为一...
  • jwq2011
  • jwq2011
  • 2016年12月15日 18:37
  • 10542

根据经纬度查询地址并对获取的json数据进行解析

第一步:根据指定的URL从google 服务器上获得包含地址的json格式的数据(其还提供xml格式的,但json解析效率比xml高) private static StringBu...

json 解析 ---Gps坐标转百度地图坐标

在开发过程中,遇到了通过gps获取地理位置,然后需要在百度地图上显示,但是通过gps获取到的坐标跟百度地图上的坐标是有差别的,具体差异,可以去百度一下,这里就不做详细的解释,百度地图也提供了相应的转换...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

JSON标准格式

标准JSON的合法符号:{(左大括号)  }(右大括号)  "(双引号)  :(冒号)  ,(逗号)  [(左中括号)  ](右中括号) JSON字符串:特殊字符可在字符前面加 \ 或使用 \u 加 ...
  • assholeu
  • assholeu
  • 2015年01月23日 02:10
  • 26363

JSON解析的几种方式

JSON是首先一种数据结构,说白了就是对数据的描述,刚刚出现是为了取代XML,可惜并没有,但是在作为配置文件上,却是很好,由于它小巧灵活,描述数据很好,所以在网络上进行数据传输更加方便。 请记住...

几种不同格式的json解析

给服务端发送请求后,服务端会返回一连串的数据,这些数据在大部分情况下都是XML格式或者JSON格式。然后JSON相对XML来说解析相对方便一些,所以先说说JSON的解析。 JSON的基本数据格式...

json解析几种格式

1、直接一个数组  前面为jsondata,下面是解析方法: // [{"devid":"1234567800","latitude":"29.4963","longitude":"11...

四种解析Json的方式

  • 2011年04月27日 14:55
  • 72KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:json解析之四种基本格式的解析
举报原因:
原因补充:

(最多只允许输入30个字)