已知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的结构封装的匿名对象

时间: 2024-10-05 11:29:40

已知json类型根据类型封装集合的相关文章

含有Date类型的对象或集合转换成json时的问题

当我们把含有Date类型的对象或者集合直接转换为json,传回前台的时候不会报错,但是前台显示的时候是两个Object,而不会显示正常的日期. 当我们进debug调试的时候不会发现有错误,但是在解析JSON的时候就会发现: 在转换为JSON的过程中把date对象分开转化,即:年.月.日.时.分.秒,每个都当成一个对象给转化了. 这时候我们就需要做一些转换了 下面给大家提供一些大神给出常规的解决方案: 一:流星焱雨给出的解决方案 二:jadethao给出的解决方案 而当我们基本只需要临时显示日期的

C# 序列化过程中的已知类型(Known Type)

WCF下的序列化与反序列化解决的是数据在两种状态之间的相互转化:托管类型对象和XML.由于类型定义了对象的数据结构,所以无论对于序列化还是反序列化,都必须事先确定对象的类型.如果被序列化对象或者被反序列化生成的对象包含不可知的类型,序列化或者反序列化将会失败.为了确保DataContractSerializer的正常序列化和反序列化,我们需要将“未知”类型加入DataContractSerializer“已知”类型列表中. 一.未知类型导致序列化失败 .NET的类型可以分为两种:声明类型和真实类

windows服务器设置文件属性设置去掉隐藏已知文件类型的扩展名(即文件后缀名可见)

摘要: 1.文件后缀名不可见,系统运维过程容易发生同名不同后缀的文件操作混淆的情况 2.windows系统默认是文件后缀名不可见 3.所以需要更改一下配置. 4.操作步骤如下图: (1)点击组织-文件夹和搜索选项 (2)点击"查看"标签并取消勾选"隐藏已知文件类型的扩展名" 原文链接: http://www.lookdaima.com/WebForms/WebPages/Blanks/Pm/Docs/DocItemDetail.aspx?EmPreviewTypeV

Cocos2d-x3.0游戏实例之《别救我》第十篇(完结)——用Json配置各类型怪物数据

现在我们有2种类型的怪物,而且创建的时候是写死在代码里的,这是要作死的节奏~ 所以,必须可配置,不然会累死人的. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址: http://www.benmutou.com/blog/archives/949  文章来源:笨木头与游戏开发 Json文件 什么是Json文件?说白了,它就是一个文本文档,只不过它的内容是按照一定的规则填写的. 于是,我们就可以按照那个规则去读取这份文档. 这,就是配置文件产生的缘由(才怪). (小若:才怪是什么意

利用文件头来实现的一些文件类型的方法封装

package com.opslab.util.algorithmImpl; import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.HashMap;import java.util.Iterator;import java.util.Map; /** * 利用文件头来实现的一些文件类型的方法封装 */publ

JAVA-集合作业-已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。采用List集合和随机数

第二题 已知有十六支男子足球队参加2008 北京奥运会.写一个程序,把这16 支球队随机分为4 个组.采用List集合和随机数 2008 北京奥运会男足参赛国家: 科特迪瓦,阿根廷,澳大利亚,塞尔维亚,荷兰,尼日利亚.日本,美国,中国,新西 兰,巴西,比利时,韩国,喀麦隆,洪都拉斯,意大利 package Test03; import java.util.ArrayList; import java.util.List; import java.util.Random; public class

Newtonsoft.Json 转换DateTime类型为字符串时,串内部会有一个T。解决方案

使用Newtonsoft.Json 转换DateTime类型时,若使用标准转换,则字符串内会有一个T(虽然再转换成DateTime没有问题). 若要转换成DateTime没有T,可以加上特性: 1 public class TestClass 2 { 3 public TestClass() 4 { 5 Dt1 = Dt2 = new DateTime(1900, 1, 1, 0, 0, 0); 6 } 7 8 [JsonConverter(typeof(TcDateTimeConverter)

c#重点[集合类型]异常,数组,集合ArrayList,List<>,hashTable,hashtable泛型(Dictionary)

1.foreach[对一些数组或集合进行遍历] foreach(类型 变量名 in 集合对象){语句体} 1 //定义一个数组 2 int [] sNum1={19,33,27,57,45,43 }; 3 foreach(var i in sNum1) 4 { 5 Console.WriteLine(i); 6 } foreach for循环 1 int[] str1 = {19,33,27,57,45,43 }; 2 //for循环遍历 3 for (int i=0;i<str1.length

解析Json和复合类型

//解析单数据类型 private void parseJSONWithJSONObject(String jsonData) { try { JSONObject jsonObject = new JSONObject(jsonData); String id = jsonObject.getString("id"); String version = jsonObject.getString("version"); String name = jsonObjec