android用jsonReader来解析json,jsonreaderjson
对于这个json:
{
"id" : "3232",
"data" : [{
"data1" : "555",
"data2" : "3243"
},
{
"data1" : "888",
"data2" : "777"
}]
}
我们可以这样来解析:
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.io.StringReader;
import com.google.gson.stream.JsonReader;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
public class TestActivity1 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
parseAssertData();
}
public void parseAssertData() {
InputStream is = null;
try {
is = this.getAssets().open("ss.json", Context.MODE_PRIVATE);
int length = is.available();
byte[] buffer = new byte[length];
is.read(buffer);
String temp = new String(buffer);
Reader response = new StringReader(temp.toString());
parseResponse(response);
} catch (IOException ex) {
ex.printStackTrace();
}
}
private void parseResponse(Reader response) throws IOException {
JsonReader reader = new JsonReader(response);
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
if ("id".equals(name)) {
String id = reader.nextString();
System.out.println("===id="+id);
}
else if (name.equals("data")) {
reader.beginArray();
while (reader.hasNext()) {
reader.beginObject();
String name1;
while (reader.hasNext()) {
name1 = reader.nextName();
if (name1.equals("data1")) {
String s1 = reader.nextString();
System.out.println("===s1="+s1);
} else if (name1.equals("data2")) {
String s2 = reader.nextString();
System.out.println("===s2="+s2);
} else {
reader.skipValue();
}
}
reader.endObject();
}
reader.endArray();
}
else {
reader.skipValue();
}
}
reader.endObject();
reader.close();
}
}
Android 解析这样的json数据怎解析?
简单的给你做了下解析,具体要解析到什么程度,你自己看吧。大概解析方法就是这样的:
如下:
privatevoid testJson(){
String JsonData = "[{\"id\":[\"386\",\"381\",\"379\",\"377\"],\"num\":[\"386\",\"381\",\"379\",\"377\"]},{\"id\":[\"3860\",\"3810\",\"3790\",\"3770\"],\"num\":[\"3860\",\"3810\",\"3790\",\"3770\"]}]";
JSONObject obj = null;
JSONArray jsonArary;
try {
jsonArary = new JSONArray(JsonData);
for(int i=0;i
obj = jsonArary.getJSONObject(i);
//取ID
JSONArray strID = obj.getJSONArray("id");
for(int j=0;j
Log.v("ID:", strID.get(j).toString());
}
//取num
JSONArray strNum = obj.getJSONArray("num");
for(int k=0;k
Log.v("NUM:", strNum.get(k).toString());
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
android中这样的JSON数据应该怎解析,
//json我的理解就是一系列键值对,只要KEY值对了,对应数据格式也对了,那就可以了!~JsonObject j = ...//此处是获取json的方法,自定boolean b = j.getBoolean("result");//取出“result”对应的值,这里的结果应该//是"true";JsonArray ja = j.getJsonArray("asks");//取出“asks”对应的值,因为asks对应的值//中含有方括号,所以这是JsonArray型数据,需要取出进一步解析;JsonArray可以与数组//进行比较理解,我个人是这样的,供参考for(int i = 0; i < ja.length(); i++){ JsonArray ja1 = ja.getJsonArray(i);//获取ja中的第一个元素,因为这个元素 //也是jsonArray,所以可以再进一步解析 double d1 = ja1.getDouble(0);//jsonArray中没有getFloat()这个方法 //,自行转型就可以了 double d2 = ja1.getDouble(1);//} 以上,希望对你有所帮助
http://www.dengb.com/Androidjc/859027.htmlwww.dengb.comtruehttp://www.dengb.com/Androidjc/859027.htmlTechArticleandroid用jsonReader来解析json,jsonreaderjson 对于这个json: { id : 3232, data : [{ data1 : 555, data2 : 3243 }, { data1 : 888, data2 : 777 }] } 我们可以这样来解析...