java 向后台传两个json数据类型_前台向后台传递JSON字符串,处理JSON字符串类型的方法...

本文介绍了如何在Java后台处理来自前端的多个JSON数据类型,包括使用Newtonsoft.Json进行序列化和反序列化,以及JSON.stringify和JSON.parse在前端的转换。通过实例展示了传递键值对和数组到后台的方法,并讲解了后台如何解析和处理这些数据。
摘要由CSDN通过智能技术生成

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

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

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

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

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

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

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

75dc810623518af4b962cd8395328caf.png

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

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"

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

67761dc3f95d8c5f302ba77bb36b359a.png

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

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

d8f3313da0a2af59ed444f9053d0a749.png

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

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

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

61db312db6f248ef2caff0ab06c42d86.png

点击之后效果如下

fed7f0e8e789251827eb229dc3e80aac.png

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

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

73637610b73eb44711e1ed9dec841311.png

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

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

13baeb18be25b303379779ecf210d6c3.png

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

490b3260d3992c7e253034101f64b61c.png

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

Dictionary WeekDictionary = JsonConvert.DeserializeObject>(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);

f9f407caa917887a95154db628dcea9e.png

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

64bc6ec08b4588e3486e031dbe0547b6.png

后台转换之后得到的数据

d2291e5a9547131f933a2d66832fcdc0.png

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

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

996278a142b6e9591c784c6f3a90f849.png

对于这个  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字符串转为一个对象。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值