JSON的基本用法

JSON:需记住的几种结构“{}”代表类的对象,“[]"代表数组。数组里面可以嵌套对象,而对象也可以嵌套对象和数组。

声明:为了能够运行,文章有些地方对原文进行了改动。

转载及Json语法参考地址:(1.原文地址 2.Json语法规则参考

1.1Java解析:(解析字符串 :令jsonData为{name:"Ian", age: "20"})

public class JsonUtils {        
    public void parseJson(String jsonData) {      
        try {  
           JsonReader reader = new JsonReader(new StringReader(jsonData));  
           reader.beginObject();  
           while(reader.hasNext()) {  
               String tagName = reader.nextName();  
               if(tagName.equals("name")) {  
                   System.out.println("name--->" + reader.nextString());  
               } else if(tagName.equals("age")) {  
                   System.out.println("age--->" + reader.nextString());  
               }  
           }  
           reader.endObject();  
     } catch (IOException e) {  
            e.printStackTrace();  
        }           
    }  
} 

1.2Java解析:(解析对象)

对象类:

public class User {  
    private String name;  
    private int age;  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
   }  
    public int getAge() {  
        return age;  
    }  
    public void setAge(int age) {  
        this.age = age;  
    }  
}  

解析方法:(注意必须先导入Gson的相关包http://code.google.com/p/google-gson/downloads/detail?name=google-gson-2.2.3-release.zip

                     并且要解压之后导入到eclipse

注意:不能直接导入,直接导入之后虽然能够通过编译,但是运行结果会报“java.lang.NoClassDefFoundError" 以下的导入方法可以避免这种情况:

  1. 右键所在android项目名下的libs文件夹,Import -> General -> File System -> next 选择google-gson-2.2.3-release.zip解压后所在的路径勾选之后 ,点击 OK
  2. 右键你的项目,Build Path -> Configure Build Path -> Libraries -> Add JARs  然后选择你的项目名下的libs文件夹,把刚刚添加的 .jar 文件全部勾选 就添加完成了

参考链接:http://blog.csdn.net/hehe9737/article/details/7899143

 

public void parseUserFromJson(String jsonData) {        
    Gson gson =new Gson();  
    User user = gson.fromJson(jsonData, User.class);  
    System.out.println("name---------->" + user.getName());  
    System.out.println("age---------->" + user.getAge());     
      
}

1.3Java解析(解析集合,令jsonData = "[{\"name\":\"Jack\",\"age\":20},{\"name\":\"Tom\",\"age\":22},{\"name\":\"Ian\",\"age\":20}]";)

public void parseUserFromJson(String jsonData) {    
       Type typeList = new TypeToken<ArrayList<User>>(){}.getType();  
       Gson gson = new Gson();  
       ArrayList<User> users = gson.fromJson(jsonData, typeList);  
       for(Iterator<User> iterator = users.iterator(); iterator.hasNext();) {  
            User user = iterator.next();  
           System.out.println("name---------->" + user.getName());  
           System.out.println("age---------->" + user.getAge());  
        }  
   }

 

2.android开发:(android调用JSonReader 在androidManifest.xml文件中必须把最小版本设置成大于等于11)

public class MainActivity extends Activity {  
    private Button btnStart;  
    private String jsonDataUser = "{\"name\":\"Ian\",\"age\":20}";    
 
   public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
         
       btnStart = (Button)findViewById(R.id.btnStart);  
       btnStart.setOnClickListener(new BtnStartSetOnClickListener());           
    }       
    private class BtnStartSetOnClickListener implements OnClickListener {  
        @Override  
        public void onClick(View v) {  
            JsonUtils jsonUtils = new JsonUtils();  
            jsonUtils.parseJson(jsonData);  
        }  
    }  
}

 初学者,有什么错误的地方希望大家多多包涵!(顺便附上我将上面的代码整合到一个项目的代码地址:http://download.csdn.net/my

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值