本文对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();
}
}
}