学习这个的用处有非常多的:
       在传输数据过程中比較查看数据比較清晰,代码也较清晰。也能够避免split函数带来的隐藏bug
当然也有不足:
       准备工具较繁琐,须要准备对象(当然一般项目中每张表都会有相应的Model类,少量数据不建议适用)
------请教各位大侠。能不能直接将Json字符串转换为对象(对象格式无需我们自定义,由于Json中已经非常明白对象的格式了)

介绍两种方式:
第一种:
适用.NET Framework3.5以上版本号的
命名空间为using System.Runtime.Serialization.Json;
        //将一个对象转换为Json字符串
public static string ObjectToJson_(object obj)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
MemoryStream stream = new MemoryStream();
serializer.WriteObject(stream, obj);
byte[] dataBytes = new byte[stream.Length];
stream.Position = 0;
stream.Read(dataBytes, 0,(int)stream.Length);
return Encoding.UTF8.GetString(dataBytes);
} //将一个Json字符串转换为对象
public static object JsonToObject_(string jsonString, Type type)
{
DataContractJsonSerializer serilizer = new DataContractJsonSerializer(type);
MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
return serilizer.ReadObject(stream);
}
另外一种:
须要引用Newtonsoft.Json.dll 下载地址
        // 从一个对象信息生成Json串
public static string ObjectToJson(object obj)
{
return JsonConvert.SerializeObject(obj);
}
// 从一个Json串生成对象信息
public static object JsonToObject(string jsonString, Type obj)
{
return JsonConvert.DeserializeObject(jsonString, obj);
}

以下运用的实例:

                    //将提交的数据Json转换为Model
string sendMessage = "[{\"Type\":\"精美小炒\", \"MyLunch\":[{\"Name\":\"番茄炒蛋\", \"Price\":\"10\"}, {\"Name\":\"耗油牛肉\", \"Price\":\"14\"}, {\"Name\":\"金针菇肥牛\", \"Price\":\"16\"}, {\"Name\":\"虾仁炒蛋\", \"Price\":\"15\"}]}, {\"Type\":\"精美套餐\", \"MyLunch\":[{\"Name\":\"商务套餐\", \"Price\":\"15\"}, {\"Name\":\"红烧猪排套餐\", \"Price\":\"12\"}, {\"Name\":\"椒盐排条套餐\", \"Price\":\"10\"}, {\"Name\":\"茄汁牛排套餐\", \"Price\":\"10\"}]}, {\"Type\":\"特色盖浇饭\", \"MyLunch\":[{\"Name\":\"回锅肉盖浇饭\", \"Price\":\"12\"}, {\"Name\":\"尖椒牛柳盖浇饭\", \"Price\":\"13\"}, {\"Name\":\"蒜苗肉丝盖浇饭\", \"Price\":\"15\"}, {\"Name\":\"辣子鸡盖浇饭\", \"Price\":\"12\"}]}]";
List<Meal> getModel = new List<Meal>();
getModel = (List<Meal>)JsonToObject_(sendMessage, typeof(List<Meal>)); //将Model转换为Json
List<Meal> MealList = new List<Meal>();
Meal modelMeal = new Meal();
List<Lunch> myLunch = new List<Lunch>();
Lunch modelLunch = new Lunch();
modelLunch.Name = "台式卤肉";
modelLunch.Price = "15";
myLunch.Add(modelLunch);
modelMeal.MyLunch = myLunch;
modelMeal.Type = "星期五套餐";
MealList.Add(modelMeal); string jsonString = ObjectToJson_(MealList);
result = jsonString;

大概就是这样子了,错误求指正!

QAQ

对于Json和对象转换的学习的更多相关文章

  1. 复选框回显、全选、非全选、cookie处理数据、json数组对象转换处理学习笔记参考的页面

    <%@include file="/common/head.jsp"%> <%@ page contentType="text/html; charse ...

  2. Newtonsoft.Json 把对象转换成json字符串

    var resultJson = new { records = rowCount, page = pageindex, //总页数=(总页数+页大小-1)/页大小 total = (rowCount ...

  3. ssh使用ajax异步通讯. json与对象转换的几个小问题

    首先是hibernate,用ssh做项目的时候,使用hibernate,这个hibernate博大精深,至今只懂皮毛.建对象时候使用它的一对多,多对多联系,. 这样子,对象转json的时候会产生循环依 ...

  4. FastJson--阿里巴巴公司开源的速度最快的Json和对象转换工具(转)

    本文转自:http://blog.csdn.net/djun100/article/details/24237371 这是关于FastJson的一个使用Demo,在Java环境下验证的 class U ...

  5. FastJson--阿里开源的速度最快的Json和对象转换工具

    示例 import java.util.ArrayList; import java.util.List; import java.util.HashMap; import java.util.Map ...

  6. 2.FastJson公司--阿里巴巴开源的速度最快的Json和对象转换工具

    转自:https://blog.csdn.net/gongpulin/article/details/52062532 这是关于FastJson的一个使用Demo,在Java环境下验证的 这是关于Fa ...

  7. FastJson--阿里开源的速度最快的Json和对象转换工具 https://www.cnblogs.com/kaituorensheng/p/8082631.html

    import java.util.ArrayList;import java.util.List;import java.util.HashMap;import java.util.Map; impo ...

  8. 小码哥哥 FastJson--阿里巴巴公司开源的速度最快的Json和对象转换工具

    转载地址:http://www.oschina.net/code/snippet_228315_35122?_t_t_t=0.4667952097048127 class User{ private ...

  9. jQuery 对象和 json 之间的转换

    JSON.parse() json 转换成 对象 JSON.stringify() 对象转换成json 想问下广大网友大神 js 里面有数组转换或者转换成数组的函数么?小弟等--

随机推荐

  1. Codeforeces 954C Matrix Walk

    题目大意 考虑一个 $x\times y$ 的矩阵 $A_{x\times y}$ ,$A_{i,j} = (i-1)x+y$ . 从矩阵中的某个位置出发,每次可向上下左右移动一步,每到一个位置,记录 ...

  2. BZOJ4540 [Hnoi2016]序列 【莫队 + ST表 + 单调栈】

    题目 给定长度为n的序列:a1,a2,-,an,记为a[1:n].类似地,a[l:r](1≤l≤r≤N)是指序列:al,al+1,-,ar- 1,ar.若1≤l≤s≤t≤r≤n,则称a[s:t]是a[ ...

  3. mysql source、mysqldump 导入导出数据(转)

    解决了mysql gbk编码的导入导出问题,感谢作者. 一.导入数据 1.确定 数据库默认编码,比如编码 为gbk,将读入途径编码同样设为gbk,命令为:           set names gb ...

  4. codeforces round375(div.2)题解

    首先吐槽一下这套题...为什么EF全是图论QAQ 过了ABCD四个题...F的并查集死磕了好久... 不过似乎rank还算乐观...(因为ABC都是一次过的QAQ) Problem A: 啥都不想说Q ...

  5. Java数据结构-------Set

    三种常用Set:HashSet.LinkedHashSet.TreeSet set类继承关系: 概述 Set是对对应Map的一种封装,Set中的元素不可以重复. HashSet对应 HashMap.L ...

  6. BZOJ 3640: JC的小苹果

    3640: JC的小苹果 Time Limit: 15 Sec  Memory Limit: 256 MBSubmit: 425  Solved: 155[Submit][Status][Discus ...

  7. JS允许找不到对象 不必判断是否存在某个div

    原文发布时间为:2009-11-10 -- 来源于本人的百度文章 [由搬家工具导入] 加一个try catch 即可。。。。 例子: for(var i=0;i<10;i++)     {    ...

  8. EnableViewState 属性

    原文发布时间为:2009-10-25 -- 来源于本人的百度文章 [由搬家工具导入] 指示是否在页请求之间保持视图状态。如果要保持视图状态,则为 true;否则为 false。默认值为 true。 自 ...

  9. android开发过程遇到的一些错误

    Unable to resolve target "android-x" 这是工程的Android版本和本地SDK中的版本不一致,一般做下处理: 1. 右击项目->andro ...

  10. c语言中的main函数讨论

    **从刚开始写C程序,相比大家便开始写main()了.虽然无数的教科书和老师告诉我们main是程序的入口.那么main函数是怎么被调用的,怎么传入参数,返回的内容到哪里了,返回的内容是什么?接下来我们 ...