[入门阅读]怎样在android中解析JSON

JSON入门介绍:http://kirin.javaeye.com/blog/616226

也参考了此篇:http://blog.163.com/fushaolin@126/blog/static/16341724220108244251686/

json数据格式解析我自己分为两种:一种是普通的,一种是带有数组形式的:http://archive.cnblogs.com/a/1925327/

先实例化个JSONObject对象

[java] view plaincopyprint?



    JSONObject aJosnObj = new JSONObject(jsonStr);//jsonStr为对应json字符串数据 

然后再根据json数据的实际情况调用有关方法。

这是一个利用JSON定位的例子:

 1 /**  

 2   * Google定位的实现.<br/>  

 3   * Geolocation的详细信息请参见:<br/>  

 4   * <a  

 5   * href="http://code.google.com/apis/gears/geolocation_network_protocol.html" mce_href="http://code.google.com/apis/gears/geolocation_network_protocol.html">  

 6   * http://code.google.com/apis/gears/geolocation_network_protocol.html</a>  

 7   */    

 8 public class LocationAct extends Activity {    

 9      private TextView txtInfo;    

10      public void onCreate(Bundle savedInstanceState) {    

11          super.onCreate(savedInstanceState);    

12          setContentView(R.layout.main);    

13          Button btn = (Button) findViewById(R.id.btnStart);    

14          txtInfo = (TextView) findViewById(R.id.txtInfo);    

15          btn.setOnClickListener(new Button.OnClickListener() {    

16              public void onClick(View view) {    

17                  getLocation();    

18              }    

19          });    

20      }    

21      private void getLocation() {    

22          TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);    

23          GsmCellLocation gsmCell = (GsmCellLocation) tm.getCellLocation();    

24          int cid = gsmCell.getCid();    

25          int lac = gsmCell.getLac();    

26          String netOperator = tm.getNetworkOperator();    

27          int mcc = Integer.valueOf(netOperator.substring(0, 3));    

28          int mnc = Integer.valueOf(netOperator.substring(3, 5));    

29          JSONObject holder = new JSONObject();    

30          JSONArray array = new JSONArray();    

31          JSONObject data = new JSONObject();    

32          try {    

33              holder.put("version", "1.1.0");    

34              holder.put("host", "maps.google.com");    

35              holder.put("address_language", "zh_CN");    

36              holder.put("request_address", true);    

37              holder.put("radio_type", "gsm");    

38              holder.put("carrier", "HTC");    

39              data.put("cell_id", cid);    

40              data.put("location_area_code", lac);    

41              data.put("mobile_countyr_code", mcc);    

42              data.put("mobile_network_code", mnc);    

43              array.put(data);    

44              holder.put("cell_towers", array);    

45          } catch (JSONException e) {    

46              e.printStackTrace();    

47          }    

48          DefaultHttpClient client = new DefaultHttpClient();    

49          HttpPost httpPost = new HttpPost("http://www.google.com/loc/json");    

50          StringEntity stringEntity = null;    

51          try {    

52              stringEntity = new StringEntity(holder.toString());    

53          } catch (UnsupportedEncodingException e) {    

54              e.printStackTrace();    

55          }    

56          httpPost.setEntity(stringEntity);    

57          HttpResponse httpResponse = null;    

58          try {    

59              httpResponse = client.execute(httpPost);    

60          } catch (ClientProtocolException e) {    

61              e.printStackTrace();    

62          } catch (IOException e) {    

63              e.printStackTrace();    

64          }    

65          HttpEntity httpEntity = httpResponse.getEntity();    

66          InputStream is = null;    

67          try {    

68              is = httpEntity.getContent();    

69          } catch (IllegalStateException e) {    

70              e.printStackTrace();    

71          } catch (IOException e) {    

72              // TODO Auto-generated catch block    

73              e.printStackTrace();    

74          }    

75          InputStreamReader isr = new InputStreamReader(is);    

76          BufferedReader reader = new BufferedReader(isr);    

77          StringBuffer stringBuffer = new StringBuffer();    

78          try {    

79              String result = "";    

80              while ((result = reader.readLine()) != null) {    

81                  stringBuffer.append(result);    

82              }    

83          } catch (IOException e) {    

84              e.printStackTrace();    

85          }    

86          txtInfo.setText(stringBuffer.toString());    

87      }    

88 } 

 

 

你可能感兴趣的:(android)