对于Json和对象直接的转换的学习

学习这个的用处有很多的:

在数据传输过程中比较查看数据比较清晰,代码也较清晰,也可以避免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

时间: 2024-08-02 18:02:52

对于Json和对象直接的转换的学习的相关文章

java处理json与对象的转化 递归

整个类是一个case,总结了我在使用java处理json的时候遇到的问题,还有级联关系的对象如何遍历,json和对象之间的转换! 对于对象json转换中遇到的问题我参考了一篇博客,http://blog.csdn.net/xq328220454/article/details/39256589 很有益处,我在文章的后半部分照搬了过来! 首先准备数据,准备了一堆具有主子关系的对象,包含普通属性id,父对象parent,子集合list<HeadCell>,还有关联对象message; 1 @Bef

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

var resultJson = new { records = rowCount, page = pageindex, //总页数=(总页数+页大小-1)/页大小 total = (rowCount + pagesize - 1) / pagesize,//总页数 rows = data.ToList<Web.Entity.Db.Table1Bean>(), }; //JsonResult jr = Json(resultJson, "application/json",

Spring MVC 后端获取前端提交的json格式字符串并直接转换成control方法对应的参数对象

场景: 在web应用开发中,spring mvc凭借出现的性能和良好的可扩展性,导致使用日渐增多,成为事实标准,在日常的开发过程中,有一个很常见的场景:即前端通过ajax提交方式,提交参数为一个json对象的字符串,采用application/json的类型,在后端control中利用@RequestBody将json字符串直接转换成对应的Java对象,如: var dataStr = '[{"id":1476,"name":"test"}]';

json字符串和json格式对象的转换

json字符串和json格式对象的转换: 实际编码中json字符串和json格式的对象有时候需要进行相互转换,下面就介绍一下如何实现. 一.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); 以上代码可以将json字符串转换为json格式对象. 二.浏览器支持的转换方式: JSON.parse(jsonstr); //可以将json字符串转换成json对象 JSON.stringify(jsonobj); //可以将json对象转换成json对符串 注意:ie7和i

jackson json和对象,集合的几种转换

jackson  json和对象,集合的几种转换 package com.crm.net.util; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.List; import org.codehaus.jackson.JsonParseException

json对象与字符串转换

//使用json中的parser方法转换: var str='{"name":"fendouer", "age":23}'; //这是一个json字符串'' var ob=JSON.parse(str) ; //返回一个新对象 console.log(ob.name) //把json中的stringify对象转换成字符串 var obj={"student":[{"name":"cyl"

JS中,JSON 和 对象互转,数组和字符串的转换?

JSON 与 J对象转化 要实现从对象转换为 JSON 字符串,使用 JSON.stringify() 方法: 如下: var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}' 要实现从 JSON 转换为对象,使用 JSON.parse() 方法: 如下: var obj = JSON.parse('{&q

javaBean与json对象间的转换

/** * 一 JSON.parseObject() 单个对象 或map 大括号{} * 二 JSON.parseArray() 多个对象 数组[] 复杂的要在类中定义类 * 三 JSON.toJSONString() javaBean与JSON格式字符串之间的转换 * * 四 javaBean与json对象间的转换使用:JSON.toJSON(obj),然后使用强制类型转换,JSONObject或者JSONArray */ @Test public void testJson(){ // {"

转载-------- JSON 与 对象 、集合 之间的转换 JSON字符串和java对象的互转【json-lib】

转载--*--*---- 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好,下面先看下JSON的格式, JSON可以有两种格式,一种是对象格式的,另一种是数组对象, {"name":"JSON","address":"北京市西城区","age":25}//JS