zoukankan      html  css  js  c++  java
  • 已知json类型根据类型封装集合

    1编写帮助类根绝url得到json

    public static string Post(string url)
            {
                string strURL = url;
    
                //创建一个HTTP请求  
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);
                //Post请求方式  
                request.Method = "POST";
                //内容类型
                request.ContentType = "json";
    
                //设置参数,并进行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("");
    
                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 strValue = "";//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数据
    
                StreamReader Reader = new StreamReader(s);
    
                strValue = Reader.ReadToEnd();//取出Content中的Json数据
                Reader.Close();
                s.Close();
    
                return strValue;//返回Json数据
            }
    

      2设定已知json类型

     public static dynamic GetJsonType(this int jsonType)
            {
                if ((int)JsonType.订单 == jsonType)
                {
                    return new
                    {
                        response = new
                        {
                            orderList = new
                            {
                                order = new[] { 
                        new { 
                            orderId = "", 
                            orderCode = "",
                            orderStatus = "",
                            orderAmount = "", 
                            productAmount = "", 
                            orderCreateTime = "", 
                            orderDeliveryFee = "", 
                            orderNeedInvoice = "", 
                            updateTime = "",
                            endUserId = "",
                            warehouseId = "", } }
                            },
                            totalCount = 0,
                            errorCount = 0
                        }
                    };
                }
                if ((int)JsonType.订单详情 == jsonType)
                {
                    return new
                    {
                        response = new
                        {
                            orderInfo = new
                            {
                                orderDetail = new
                                {
                                    orderId = "",
                                    orderCode = "",
                                    orderStatus = "",
                                    orderAmount = "",
                                    productAmount = "",
                                    realAmount = "",
                                    orderCreateTime = "",
                                    orderDeliveryFee = "",
                                    orderNeedInvoice = "",
                                    goodReceiverName = "",
                                    goodReceiverAddress = "",
                                    goodReceiverProvince = "",
                                    goodReceiverCity = "",
                                    goodReceiverCounty = "",
                                    goodReceiverPostCode = "",
                                    goodReceiverPhone = "",
                                    goodReceiverMoblie = "",
                                    orderPaymentConfirmDate = "",
                                    payServiceType = "",
                                    orderPromotionDiscount = "",
                                    deliverySupplierId = "",
                                    merchantRemark = "",
                                    updateTime = "",
                                    orderCouponDiscount = "",
                                    orderPlatformDiscount = "",
                                    endUserId = "",
                                    warehouseId = "",
                                }
                            },
                            orderItemList = new
                            {
                                orderItem = new[] 
                                { 
                                    new
                                    {
                                        id="",
                                        orderId="",
                                        orderItemAmount = "",
                                        orderItemNum = "",
                                        orderItemPrice = "",
                                        productCName = "",
                                        productId = "",
                                        originalPrice = "",
                                        merchantId = "",
                                        updateTime = "",
                                        groupFlag = "",
                                        deliveryFeeAmount = "",
                                        promotionAmount = "",
                                        couponAmountMerchant = "",
                                        couponPlatformDiscount = "",
                                        subsidyAmount = "",
                                    }
                                }
                            }
                        }
                    };
                }
                return null;
            }

    3调用

    var text = GetJson.Post("http://localhost:7822/SaleOrders/Read");
                var type = ((int)JsonType.订单).GetJsonType();
                var obj = JsonConvert.DeserializeAnonymousType(text, type);

    上面的结果”obj“就是我们根据json的结构封装的匿名对象

  • 相关阅读:
    vscode Git提交
    安装 nrm
    vue+element ui项目总结点(六)table编辑当前行、删除当前行、新增、合计操作
    Filebrowser安装教程
    vue数据处理:把数组处理成适用于tree组件的数据
    WC2016模拟Divisor
    对拍模板
    题解(5031. 【NOI2017模拟3.27】B)(数论,组合数学)
    Codeforces #657 Div2C choosing flowers
    关于一个大菜鸡的记录
  • 原文地址:https://www.cnblogs.com/liuchang/p/4347857.html
Copyright © 2011-2022 走看看