JSON的基本用法

來源:互聯網
上載者:User

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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.