JSON解析

本文介绍如何在Android应用中解析JSON和XML数据,包括从网络获取数据、解析过程以及展示解析结果的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.bean.paser;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

import android.app.Activity;
import android.os.Bundle;
import android.util.StringBuilderPrinter;
import android.util.Xml;

public class Paser2Activity extends Activity {
 
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  String link = "http     ";
  // try {
  // URL url=new URL(link);
  // InputStream inputStream=url.openStream();
  // System.out.println("inputstream="+inputStream);
  // XmlPullParser parser=Xml.newPullParser();
  // parser.setInput(inputStream, "utf-8");
  // StringBuffer buffer = new StringBuffer();
  // int type=parser.getEventType();
  // while(type != XmlPullParser.END_DOCUMENT){
  // switch (type) {
  // case XmlPullParser.START_DOCUMENT:
  // buffer.append("开始解析\n");
  // break;
  // case XmlPullParser.START_TAG:
  // buffer.append(parser.getName() + ":");
  // for (int i = 0; i < parser.getAttributeCount(); i++) {
  // buffer.append(parser.getAttributeName(i) + "="
  // + parser.getAttributeValue(i));
  // }
  // buffer.append("\n");
  // break;
  // case XmlPullParser.TEXT:
  // buffer.append(parser.getText());
  // break;
  // case XmlPullParser.END_TAG:
  // break;
  // default:
  // break;
  // }
  // type = parser.next();
  // }
  // System.out.println("解析结束\n"+buffer.toString());
  // } catch (MalformedURLException e) {
  // // TODO Auto-generated catch block
  // e.printStackTrace();
  // } catch (IOException e) {
  // // TODO Auto-generated catch block
  // e.printStackTrace();
  // } catch (XmlPullParserException e) {
  // // TODO Auto-generated catch block
  // e.printStackTrace();
  // }
  URL url;
  System.out.println("\"");
  String jsStr = "{\"students\":";
  try {
   url = new URL(link);
   InputStream inputStream = url.openStream();
   BufferedReader br = new BufferedReader(new InputStreamReader(
     inputStream));
   StringBuffer buffer = new StringBuffer();
   int t = 0;
   char[] buf = new char[1024];
   while ((t = br.read(buf)) != -1) {
    // buffer.append(String.valueOf(buffer1));
    String temp = new String(buf, 0, t);
    buffer.append(temp);
//    System.out.println("temp=" + temp);
   }
   br.close();
   jsStr += buffer.toString() + "}";
  } catch (MalformedURLException e1) {
   // TODO Auto-generated catch block
   e1.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
//  System.out.println("目标文件如下:" + jsStr);
  try {
   JSONObject jo = new JSONObject(jsStr);
   JSONArray jsonArray;
   jsonArray = (JSONArray) jo.get("students");
   // uid,content,dateandtime,avator,username,
   System.out.println("开始解析:");
   for (int i = 0; i < jsonArray.length(); ++i) {
    JSONObject o = (JSONObject) jsonArray.get(i);
    System.out.println("uid:" + o.getString("uid") + "\n"
      + "content:" + o.getString("content") + "\ndateandtime:"
      + o.getString("dateandtime") + "\navator:"
      + o.getString("avator") + "\nusername:"
      + o.getString("username"));
    System.out.println("//////////////////////////////");
   }
   System.out.println("程序结束");
  } catch (JSONException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值