android-Json-<十三>

1.Json

   技术分享

  技术分享

2.Json例子

 技术分享

  将Json(一个字符串)直接解析出来

技术分享
 
public class JsonUtils {
  
    public void jsonReader(String str)
    {
    // str形如:String JsonStr="[{\"name\":\"hq\",\"age\":20},{\"name\":\"cyx\",\"age\":30}]";
     //这里解析读取json数组。
    //创建一个json解析对象
    JsonReader  jr=new JsonReader(new StringReader(str));
    try {
        //读取的流程是1.开始读取数组。2.开始读取对象。3.开始读取键值对。
        //(重复多次3)4.结束读取对象。5.结束读取数组
        jr.beginArray();
        while(jr.hasNext())
        {
        jr.beginObject();
         while(jr.hasNext())
         {
             String name=jr.nextName();
             if(name.equals("name"))
                 System.out.println("name---"+jr.nextString());
             else if(name.equals("age"))
                 System.out.println("age---"+jr.nextInt());
         }
        jr.endObject();
        }
        jr.endArray();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    
    }

    
    public void parseJsonFromUser()
    {
        //1.创建Gson对象
        Gson gson = new Gson();
        //
        User user = gson.fromJson(jsonData, User.class);
        System.out.println("name--->" + user.getName());
        System.out.println("age---->" + user.getAge());
        
    }
}
View Code

  将单个Json对象(字符串:只有一个对象)解析到结构类似的类对象中

public class JsonUtils {
    
    //将单个json对象解析到结构相似的User类中
    public void parseUserFromJson(String jsonData){
        //1.创建Gson对象
        Gson gson = new Gson();
        //2.调用该对象的fromJson方法,解析到user对象去
        User user = gson.fromJson(jsonData, User.class);
        System.out.println("name--->" + user.getName());
        System.out.println("age---->" + user.getAge());
        
    }
}

  将多个Json对象(字符串:多个Json对象)解析到结构类似的类对象中

public class JsonUtils {
    
    //解析Json数组(多个json对象)到一个user列表里
    public void parseUserFromJson(String jsonData){
        //1.创建Type对象,用来存放多个User对象
        Type listType = new TypeToken<LinkedList<User>>(){}.getType();
        //2.创建Gson对象
        Gson gson = new Gson();
        //3.调用fromJson方法,返回解析完后的User(list)里
        LinkedList<User> users = gson.fromJson(jsonData, listType);
        for (Iterator iterator = users.iterator(); iterator.hasNext();) {
            User user = (User) iterator.next();
            System.out.println("name--->" + user.getName());
            System.out.println("age---->" + user.getAge());
        }
        
    }
}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。