前台向后台传递JSON字符串,处理JSON字符串类型的方法

--欢迎多多评论多多交流,指正缺点

 

在这之前必要提到这些JSON的转换都是依赖于引入   ,

首先你得懂得用 ajax 传值到一般处理程序, 以及基本得json字符串结构

 

Newtonsoft.Json.dll  动态链接库文件,

需要的同学可以点击链接去我的百度云下载 ,下面给出地址   

链接:https://pan.baidu.com/s/1yINv3y6r-MsV1C6hcyxMtQ   提取码:2lv6 

 

用的时候就首先引入命名空间就可以调用里面的方法拉

 

 

然后我们来介绍介绍里面的主要方法

 

1) JsonConvert.SerializeObject()           将指定的对象序列化为JSON字符串。      (后台打包回来)

2)  JsonConvert.DeserializeObject()    将JSON字符串反序列化为指定的.NET类型     (后台解析,JSON字符串为某种集合类型)

3) JSON.parse()                将JSON字符串转为一个对象。         (前台转换)

4)   JSON.stringify()            将 JavaScript 值转换为 JSON 字符串,     (前台转换)

 

    

 

里面有很多转换方法,但这里主要转换是字符串,数组,键值对 的方法, 其他方法不过多累赘

 

 

 

 

JSON传递到后台的数据是多种多样的,但基本思想大致是一样的,(我想其他的传递思想应该是大同小异的)

1.不同的传值方式前台序列化成JSON字符串传递到后台

2.后台用合适的集合或者封装类的方法进行解析浅谈传递过来的JSON字符串,然后在后台程序中处理,处理完成序列化成JSON字符串打包回来

3.前台接送到后台传递回来的JSON字符串,转换为JSON 对象进行合理的拆分,取值(原来什么类型传就用什么方式取)

 

 

 

 

(方法1——传递单个字符串)      当传递单个值得情况下
var self="asd";   

JSON.stringify("asd") 后台接收:  "asd"

如果说单纯得传递一个字符串到后台得时候往往是非常容易的,           这里就不过多累赘

比较简单得就可实现 数据库语句得字符串拼接了,  

这个时候而言,我们无非就是对返回回来的字符串进行判读处理,值得一提的是如果我们返回一个Bool 值类型 ,在经过toString()方法之后,   首字母是会转换成大写的

 因此判断的时候如果出错要稍微注意一下了

 

 

 

 

 

(方法2,3 传递多值得时候)通过一个例子来理解把

这个例子是基于点击按钮之后,通过后台为文本添加上已经处理

点击之后效果如下

 

 

(方法2——传递键值对的形式)    

获取相应文本框的数据作为值,

 我们在文本框依次输入   测试数据1,测试数据2,测试数据3,测试数据4    

 

如果我们前台alert直接弹出这个return的值 

alert(JSON.stringify([object Object]) )弹窗处理这个对象之后可以得到这样一个JSON 字符串:

 

    

那么后台(一般处理程序或者类文件中)如何取出这样的键值对形式呢,可以直接通过字典集合的形式进行解析处理      一般来所键值对的形式我们用字典集合处理比较好

       Dictionary<string, string> WeekDictionary = JsonConvert.DeserializeObject<Dictionary<string, string>>(pars);  //将我们的键值对对象转换为字典集合
        for (int i = 0; i < WeekDictionary.Count; i++)
        {
            string ValueIndex = "value" + (i + 1).ToString();
            WeekDictionary[ValueIndex] = "已处理" + WeekDictionary[ValueIndex];
        }
        return JsonConvert.SerializeObject(WeekDictionary);                                  //将指定的对象序列化为JSON字符串。

 

这样我们就可以在前台用统一的格式来处理这个JSON字符串了 

 

 对于这个  re  数据 我们可以对它进行处理,之后就可以在前台通过类似数组的索引的方式取出某一个值了

msg = (typeof (data) == "object" ? msg : JSON.parse(data)); //将这个json字符串转换成json对象
//将返回回来的数据转换成为一个数组
self.elems.$tmpl_input.val(msg["value1"]);
self.elems.$tmpl_input1.val(msg["value2"]);
self.elems.$tmpl_input2.val(msg["value3"]);
self.elems.$tmpl_input3.val(msg["value4"]);

 

 msg = (typeof (re) == "object" ? msg : JSON.parse(re));         --这句的意思是判断是不是一个JSON对象,如果不是将JSON字符串转为一个对象。

 

 

 

 

 

 

 

 (方法3——传数组的形式)   

 

如果我们前台     alert($p);

 

alert(JSON.stringify($p)); 处理这个对象之后可以得到这样一个JSON 字符串:

 

 

 后台转换之后得到的数据

 

最后经过    JsonConvert.SerializeObject(list);               //将指定的list集合序列化为JSON字符串。  (拿数据)

 

在这之后前台可以拿到数据

 

 对于这个  re  数据 我们可以对它进行处理,之后就可以在前台通过类似数组的索引的方式取出某一个值了           (读取数据)

msg = (typeof (data) == "object" ? msg : JSON.parse(data));                   //将这个json字符串转换成json对象
                self.elems.$tmpl_input.val(msg[0]);
                self.elems.$tmpl_input1.val(msg[1]);
                self.elems.$tmpl_input2.val(msg[2]);
                self.elems.$tmpl_input3.val(msg[3]);

 msg = (typeof (re) == "object" ? msg : JSON.parse(re));         

--这句的意思是判断是不是一个JSON对象,如果不是将JSON字符串转为一个对象。

 

 

 

 

 

 

----不能只思考而不去做,也不能只去做而不思考,同样在生活中也要成为一个细心的人

 

posted on 2019-07-19 09:57  爱诚  阅读(20941)  评论(0编辑  收藏  举报

导航