手动读,写json串

本文对json串的操作不是直接使用gson,而是手动解析,还要手动写一个json串

//读取json串

public class MainActivity extends Activity implements OnClickListener {

	private static final String TAG = "MainActivity";
	private Button btn;
	private String str;
	private TextView tv;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//获得控件
		btn=(Button)findViewById(R.id.button1);
		btn.setOnClickListener(this);
		tv=(TextView)findViewById(R.id.textView1);
	}
	//监听方法
	@Override
	public void onClick(View v) {
		jsonresolver();
		
		
	}
	//解析json
	public void jsonresolver()
	{
		try {
			StringBuilder sb = new StringBuilder();
			//获得json串
			InputStream is=getAssets().open("weatherjson.txt");
			//调方法
			String json=StreamTools.readFromFile(is);
			//创建json对象
			JSONObject jsonobject=new JSONObject(json);
			
			int error=jsonobject.getInt("error");
			String status=jsonobject.getString("status");
			String data=jsonobject.getString("date");
			sb.append("error="+error+"\t status="+status+"\t data="+data);
			
			JSONArray jsonarray=jsonobject.getJSONArray("results");
			//遍历数组
			for (int i = 0; i < jsonarray.length(); i++) {
				jsonobject=(JSONObject) jsonarray.get(i);
				String currentcity=jsonobject.getString("currentCity");
				sb.append("\t results:"+"\t currentcity "+currentcity+"\n");
			    JSONArray jsonarray2=jsonobject.getJSONArray("weather_data");
			    //遍历数组
			    for (int j = 0; j < jsonarray2.length(); j++) {
			    	jsonobject=(JSONObject) jsonarray2.get(j);
			    	String dates=jsonobject.getString("date");
			    	String dayPictureUrl=jsonobject.getString("dayPictureUrl");
			    	String nightPictureUrl=jsonobject.getString("nightPictureUrl");
			    	String weather=jsonobject.getString("weather");
			    	String wind=jsonobject.getString("wind");
			    	String temperature=jsonobject.getString("temperature");
			    	sb.append("\t data="+dates+"\t dayPictureUrl="+dayPictureUrl+"\t nightPictureUrl="+nightPictureUrl+"\t weather="+
			    			weather+"\t wind="+wind+"\t temperature="+temperature);
				}
			}
			Log.d(TAG, "SB"+sb);
			tv.setText(sb);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	

}
//手动写一个json串

public class MainActivity extends Activity {

	private TextView tv;
	private Button btn;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//获得控件
		btn=(Button)findViewById(R.id.button1);
		tv=(TextView)findViewById(R.id.textView1);
		btn.setOnClickListener(listener);
	}
	//监听对象
	OnClickListener listener=new OnClickListener() {
		
		@Override
		public void onClick(View v) {
			createJson();
		}
	};
	//拼接一个json串
	public void createJson()
	{
		try {
			JSONObject jsonobject=new JSONObject();
			jsonobject.put("error", "200");
			jsonobject.put("status", "false");
			jsonobject.put("data", "2016-07-23");
			
			JSONArray jsonarray=new JSONArray();
			JSONObject jsonobject2=new JSONObject();
			
			jsonarray.put(jsonobject2);
			jsonobject2.put("currentCity", "北京");
			
			JSONArray jsonarray2=new JSONArray();
			jsonobject2.put("weather_data", jsonarray2);
			
			
			for(int i=0;i<2;i++){
				
				JSONObject jsonobject3=new JSONObject();
				jsonobject3.put("date", "星期三");
				jsonobject3.put("weather", "晴");
				jsonobject3.put("temperature", "20℃");
				jsonarray2.put(jsonobject3);
			}
			
			jsonobject.put("results",jsonarray );
			
			
			tv.setText(jsonobject.toString());
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}

}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值