Android安卓-Json基础,String转换为Json格式,Json的解析,Json数据类型有哪些?

在Android项目里通过http请求获取json数值非常普遍,记录一下,加强练习

String字符串转换为Json

对于json字符串,json对象,这两个类型,可以直接使用JSONObject的方法进行转换。

String input_string;
   JSONObject toJsonObj= new JSONObject(input_string);

JSONObject是安卓里自带的一个方法。但是对于Json数组就不行,需要用JSONArray

String input_string=;
    JSONArray toJsonObj= new JSONArray(input_string);

几种从http中获取的常见的json类型:
1.Json字符串. 可以把name当成key,Alice当成值看待。

{ "name":"Alice"}  
     private void getJsonString() throws JSONException {
          JSONObject toJsonObj= new JSONObject(input_string);
          String value_name= toJsonObj.get("name").toString();
          System.out.println("name为key,它的value是 "+value_name);
        }

在
2.Json对象. name,age,city可以看作是character的值value。 character可以看作是key。如果想要获取name对应的值,必须先要从character中获取对应的值。再从这些值里,获取name对应的值。

{  
"character":{ "name":"Alice", "age":18, "gender":"female" } 
}
   private void toJsonObject() throws JSONException {
            JSONObject toJsonObj= new JSONObject(input_string);//将整个string先转换为JSONObject
            String value_character= toJsonObj.get("character").toString();//再去character的值
            JSONObject character_toJsonObj= new JSONObject(value_character);//再将chara的值转换为JSONObject
            String value_age=character_toJsonObj.getString("age").toString(); //在获取age的值

            System.out.println("打印:toJsonObj是  "+toJsonObj);
            System.out.println("打印:character_toJsonObj是  "+character_toJsonObj);
            System.out.println("打印:age为key,它的value是 "+value_age);
        }
     

在这里插入图片描述

3.Json数组. 注意“ [ ] ”符号。

{ 
	"name":[ "Alice", "Ben", "Peter" ]
}
    private void toJsonArray() throws JSONException {
        JSONObject toJsonObj=new JSONObject(input_string);//现将string转换为JsonObj
        String value_name= toJsonObj.getString("name");//再去name的值
        JSONArray toJsonArray= new JSONArray(value_name);//将name的值看作array来转换
        String array_0=  toJsonArray.get(0).toString();//获取array的第0个
        String array_1=  toJsonArray.get(1).toString();//获取array的第1个
        String array_2=  toJsonArray.get(2).toString();//获取array的第2个

        System.out.println("打印:toJsonObj是  "+toJsonObj);
        System.out.println("打印:toJsonArray  "+toJsonArray);
        System.out.println("打印:array_0: "+array_0+"  array_1: "+array_1+"  array_2:"+array_2);
    }

在这里插入图片描述

总的来说,看到{ }就把它当作JSONObject先处理,看到[ ]就当作JSONArray来处理,之后再取值,再进行处理。

Android技术生活交流

q群


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值