json嵌套怎么写

1. java怎么把oracle数据生成json嵌套格式 import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; public class TestJson { public static void main(String[] args) { JSONObject jsonObj = new JSONObject();//创建json格式的数据 JSONArray jsonArr = new JSONArray();//json格式的数组 JSONObject jsonObjArr = new JSONObject(); try { jsonObjArr.put("item1", "value1"); jsonObjArr.put("item2", "value2"); jsonArr.put(jsonObjArr);//将json格式的数据放到json格式的数组里 jsonObj.put("rows", jsonArr);//再将这个json格式的的数组放到最终的json对象中 。
System.out.println(jsonObj.toString()); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 最终程序生成的数据格式就如下: {"rows":[{"item1":"value1","item2":"value2"}]} 。
2. C#怎么取带嵌套的格式一致的JSON Web Service接口方法 [WebMethod]public string Project(string paramaters){return paramaters;}实现代码public string Post(string methodName, string jsonParas){string strURL = Url + "/" + methodName;//创建一个HTTP请求 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);//Post请求方式 request.Method = "POST";//内容类型request.ContentType = "application/x-www-form-urlencoded";//设置参数,并进行URL编码 //虽然我们需要传递给服务器端的实际参数是JsonParas(格式:[{\"UserID\":\"0206001\",\"UserName\":\"ceshi\"}]),//但是需要将该字符串参数构造成键值对的形式(注:"paramaters=[{\"UserID\":\"0206001\",\"UserName\":\"ceshi\"}]"),//其中键paramaters为WebService接口函数的参数名,值为经过序列化的Json数据字符串//最后将字符串参数进行Url编码string paraUrlCoded = System.Web.HttpUtility.UrlEncode("paramaters");paraUrlCoded += "=" + System.Web.HttpUtility.UrlEncode(jsonParas);byte[] payload;//将Json字符串转化为字节 payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);//设置请求的ContentLength request.ContentLength = payload.Length;//发送请求,获得请求流 Stream writer;try{writer = request.GetRequestStream();//获取用于写入请求数据的Stream对象}catch (Exception){writer = null;Console.Write("连接服务器失败!");}//将请求参数写入流writer.Write(payload, 0, payload.Length);writer.Close();//关闭请求流String strValuehttp://www.xuexi88.com/zhishi/= "";//strValue为http响应所返回的字符流HttpWebResponse response;try{//获得响应流response = (HttpWebResponse)request.GetResponse();}catch (WebException ex){response = ex.Response as HttpWebResponse;}Stream s = response.GetResponseStream();//服务器端返回的是一个XML格式的字符串,XML的Content才是我们所需要的Json数据XmlTextReader Reader = new XmlTextReader(s);Reader.MoveToContent();strValue = http://www.xuexi88.com/zhishi/Reader.ReadInnerXml();//取出Content中的Json数据Reader.Close();s.Close();return strValue;//返回Json数据}Url的格式样例:"http://59.68.29.106:8087/IFT_Project.asmx" methodName参数就是"Project" JsonParas就是使用C# JavaScriptSerializer将List类型的对象序列化之后得到的值,数据格式:[{\"UserID\":\"0206001\",\"UserName\":\"ceshi\"}],Json数据中的中括号代表由着多个对象集合序列化,花括号代表一个对象序列化得到的结果,花括号里面的内容使用键值对的方式展示,多个属性之间用逗号隔开,每个对象也用逗号隔开 。
request.ContentType必须设置值,建议使用"application/x-www-form-urlencoded",设置其他值就很容易报服务器内部异常,使用这种方式服务接口方法返回的是xml格式的字符串 payload将请求参数转换成二进制来保存,此处一定要将“paramaters”加入其中,不然会报异常缺少参数,paramaters就是服务接口函数的参数名 。函数中使用了URL编码,注意在编码的时候只需要将键和值进行编码,不要将中间的=进行编码,不然getResponse的时候会报异常 。