有个问题是json格式是嵌套的,传输的时候值每次都发送不到服务器。
比如:json格式是:{
"title":"555","type":"record","language":"zh-hans","uid":"1","status":"1","body":"数据","field_record_ftate":[{"value":{"date":"2010-01-27"}}],"field_record_state":[{"value":{"date":"2010-01-27"}}]
}上面是服务器的格式。但现在在手机上需要按上面格式发送给服务器
,问题是时间(field_record_ftate)参数不知道该怎么传给服务器。
有没有遇到这个问题的朋友?

解决方案 »

  1.   

    直接把它们写成字符串,然后传送给服务器可以不?
    或者:其他的可以是字符串类型,最后两个是数组类型,然后通过这些指定了类型的数据组成一个json传过去。
      

  2.   

    写成字符串没什么问题,json到最后也都是字符串。服务器在根据格式解析一下
      

  3.   

    先按照上面的格式,存储为JSON格式的,然后setRequestProperty("Content-Type","application/json");
    然后把JSON字符串POST给服务器。
    关于转换JSON格式请参考:
    http://www.cnblogs.com/xwdreamer/archive/2011/12/16/2296904.html
      

  4.   

    JSON也就是字符串嘛!POST过去一串字符串就行了!
      

  5.   

    这是我之前回复其它问题的代码,服务端解析JSON对象的方法
    public static void demo() {
            String jsonstr = "{\"info\":[{\"name\":\"123\",\"xy\":111},{\"name\":\"123\",\"xy\":111},{\"name\":\"123\",\"xy\":111}]}";
            JSONObject obj;
            try {
                obj = new JSONObject(jsonstr);
                JSONArray array = obj.getJSONArray("info");
                for (int i = 0; i < array.length(); i++) {
                    JSONObject item = (JSONObject) array.get(i);
                    System.out.println(item.getString("name") + "_________"
                            + item.getString("xy"));
                }
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }    }
      

  6.   

    简单说就是一段文本,扔给服务器后,服务器拿到数据后按格式解析就ok了。
    发给服务器用HTTP POST 就可以。