google-json数据解析 值为json对象的解析

原创
2015/06/02 11:16
阅读数 158
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
 private String jsonData = "{\"weatherinfo\":{\"city\":\"上海\"}}";
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  Button btn = (Button) findViewById(R.id.button1);
  btn.setOnClickListener(new OnClickListener() {
   @Override
   public void onClick(View v) {
    JsonUtils jsonUtils = new JsonUtils();
    jsonUtils.paresReaderJson(jsonData);
   }
  });
 }
}
import java.io.StringReader;
import com.google.gson.stream.JsonReader;
public class JsonUtils {
 public void paresReaderJson(String jsonData) {
  Object  obj;
  String jsonData2=null;
  JsonReader reader = new JsonReader(new StringReader(jsonData));
  try {
   // 开始解析对象
   reader.beginObject();
   // 判断是否存在下一个对象
   String tagname = reader.nextName();
   // 判断键  解析值
   if (tagname.equals("weatherinfo")) {
    System.out.println("weatherinfo键存在");
    obj=readweatherinfo(reader);
   }
   //解析对象结束
   reader.endObject();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 //解析上层的返回值
 private Object readweatherinfo(JsonReader reader) {
  try {
   // 开始解析对象
   reader.beginObject();
   // 判断是否存在下一个对象
   String tagname = reader.nextName();
   if (tagname.equals("city")) {
    System.out.println("city----------"+reader.nextString());
   }
   // 开始解析对象
   reader.endObject();
  } catch (Exception e) {
   e.printStackTrace();
  }
  return reader;
 }
}


展开阅读全文
打赏
0
0 收藏
分享
加载中
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部