如题,现在有如下要求,把关键代码给一下吧
功能:显示应用的详细信息
格式:JSON
HTTP请求方式:POST
是否需要登录:false
请求参数:
action: score
app_id: 应用ID
cellphone_id: 应用ID
score: 分数请求结果:
{
“success”:”true”,
“msg”:”提示信息”,
}
功能:显示应用的详细信息
格式:JSON
HTTP请求方式:POST
是否需要登录:false
请求参数:
action: score
app_id: 应用ID
cellphone_id: 应用ID
score: 分数请求结果:
{
“success”:”true”,
“msg”:”提示信息”,
}
格式:JSON
HTTP请求方式:POST
是否需要登录:false
请求参数:
action: hot请求结果:
{
“success”:”true”,
data:[{ 列表数据,数组形式
"app_id" : "应用ID",
"app_name" : "应用名称",
"icon" : "应用图标URL",
}]
}
这个怎样解析呢,求大神帮忙
网络端与客户端的交互这里就不说了
json转换的方法如下:MyClass myClass= new MyClass();//要转换的对象
GsonBuilder gsonb = new GsonBuilder();
// Json中的日期表达方式没有办法直接转换成我们的Date类型, 因此需要单独注册一个Date的反序列化类.
DateDeserializer ds = new DateDeserializer();
// 给GsonBuilder方法单独指定Date类型的反序列化方法
gsonb.registerTypeAdapter(Date.class, ds);
Gson gson = gsonb.create();
// 将json数据解析成对象
if (!result.equals("0")) {
myClass = gson.fromJson(result, MyClass.class);//result是还未转换的json字符串,在这里进行json转换
}里面有个处理时间的类如下/**
* 处理时间
*/
public class DateDeserializer implements JsonDeserializer<Date> {
public Date deserialize(JsonElement json, Type typeOfT,
JsonDeserializationContext context) throws JsonParseException {
String JSONDateToMilliseconds = "\\/(Date\\((.*?)(\\+.*)?\\))\\/";
Pattern pattern = Pattern.compile(JSONDateToMilliseconds);
Matcher matcher = pattern.matcher(json.getAsJsonPrimitive()
.getAsString());
String result = matcher.replaceAll("$2");
return new Date(new Long(result));
}
}
网络端与客户端的交互这里就不说了
json转换的方法如下:MyClass myClass= new MyClass();//要转换的对象
GsonBuilder gsonb = new GsonBuilder();
// Json中的日期表达方式没有办法直接转换成我们的Date类型, 因此需要单独注册一个Date的反序列化类.
DateDeserializer ds = new DateDeserializer();
// 给GsonBuilder方法单独指定Date类型的反序列化方法
gsonb.registerTypeAdapter(Date.class, ds);
Gson gson = gsonb.create();
// 将json数据解析成对象
if (!result.equals("0")) {
myClass = gson.fromJson(result, MyClass.class);//result是还未转换的json字符串,在这里进行json转换
}里面有个处理时间的类如下/**
* 处理时间
*/
public class DateDeserializer implements JsonDeserializer<Date> {
public Date deserialize(JsonElement json, Type typeOfT,
JsonDeserializationContext context) throws JsonParseException {
String JSONDateToMilliseconds = "\\/(Date\\((.*?)(\\+.*)?\\))\\/";
Pattern pattern = Pattern.compile(JSONDateToMilliseconds);
Matcher matcher = pattern.matcher(json.getAsJsonPrimitive()
.getAsString());
String result = matcher.replaceAll("$2");
return new Date(new Long(result));
}
}
// Json中的日期表达方式没有办法直接转换成我们的Date类型, 因此需要单独注册一个Date的反序列化类.
DateDeserializer ds = new DateDeserializer();
// 给GsonBuilder方法单独指定Date类型的反序列化方法
gsonb.registerTypeAdapter(Date.class, ds);
Type t = new TypeToken<LinkedList<MyClass>>() {}.getType();//关键在这里
Gson gson = gsonb.create();
// 将json数据解析成对象
if (!result.equals("0")) {
list = gson.fromJson(result, t);
}
String list=XXXXXXX;
JSONObject json=new JSONObject(list);
JSONArray array=new JSONArray(json.getString("array"));//2
for (int i = 0; i < array.length(); i++) {
JSONObject jss=array.getJSONObject(i);
String id=jss.getString("XXXX");
}这个是解析数组....如果不是数组类,只需要将2句和for循环给去掉