如题,现在有如下要求,把关键代码给一下吧
功能:显示应用的详细信息
格式:JSON
HTTP请求方式:POST
是否需要登录:false
请求参数:
action: score
app_id: 应用ID
cellphone_id: 应用ID
score: 分数请求结果:
{
  “success”:”true”,
  “msg”:”提示信息”,
}

解决方案 »

  1.   

    现在我的需求中又有循环了,如下
    格式:JSON
    HTTP请求方式:POST
    是否需要登录:false
    请求参数:
    action: hot请求结果:
    {
      “success”:”true”,
       data:[{  列表数据,数组形式
             "app_id" : "应用ID",
             "app_name" : "应用名称",
    "icon" : "应用图标URL",
    }]
     }
    这个怎样解析呢,求大神帮忙
      

  2.   

    要下载一个jar包:gson-1.7.1.jar
    网络端与客户端的交互这里就不说了
    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));
    }
    }
      

  3.   

    要下载一个jar包:gson-1.7.1.jar
    网络端与客户端的交互这里就不说了
    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));
    }
    }
      

  4.   

    解析json集合参考上面代码,再看下面代码:GsonBuilder gsonb = new GsonBuilder();
    // 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);
    }
      

  5.   

    http://blog.csdn.net/aomandeshangxiao/article/details/7000077
      

  6.   

    直接解析啊sdk中的jsonobject和jasonarray可以帮到你
      

  7.   

    你下一个gson-1.6.jar包就可以了
      

  8.   


    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循环给去掉