json中引号转换

惯例:

我是温浩然:

今天遇到了这样一个问题,首先,我是这样写的

var driver = [];
		$("input[rw='driver']",$('#editCardModalprint')).each(function () {	
			driver.push('{"driver":"'+$(this).val()+'"}');//driver
         });
想要生成一个类似

[{"driver":"asdfadsfasdf"},{"driver":"qreqwrqwe"}]

格式的东西,但是发现,如果输入的东西,就是

$(this).val()

中输入的如果有英文格式的引号,如   '  "   

前端页面生成

{"driver":""a"c"d"e""}
{"driver":"a'b'c'd'e'f'"}

但是,如果把这个数据,通过

JSONObject jsonParam = new JSONObject();

来转换一下,会出问题的。

问题如下:

"drivers":["{\"driver\":\"\"a\"c\"d\"e\"\"}",{"driver":"a'b'c'd'e'f'"}],

在这个{"driver":""a"c"d"e""}的前面和后面,都被加上一个 " "  引号。

这不是我们需要的。

·······································这是分割线········································

后来发现,原来,我从最开始就错了。

var driver = [];
		$("input[rw='driver']",$('#editCardModalprint')).each(function () {	
			driver.push({
				'driver':$(this).val()
			});//driver
         });

这样就可以了,没必要跟我一样,多写了那么多东西,还不管用了。

<span style="font-family: Arial, Helvetica, sans-serif;">{driver=a'b'c'd'e}</span>
{driver=a"b"c"d"e"}
"drivers":[{"driver":"a'b'c'd'e"},{"driver":"a\"b\"c\"d\"e\""}],
下面贴本来的代码:

先贴JS的:

editPrintCard : function() {
		var veidoo = [];
		var p = $('#editCardModalprint')
		var cs = $("input[ch='veidoo']:checked", p)
		cs.each(function() {
			veidoo.push('{"name":"'+this.value+'"}');
		});
		
		var sample = [];
		if($('#editCardModalprint .sample1').val()!=""){
			sample.push({
				url:$('#editCardModalprint .sample1').val(),
				type:'img',
			});
		}
		if($('#editCardModalprint .sample2').val()!=""){
			sample.push({
				url:$('#editCardModalprint .sample2').val(),
				type:'img'
			});
		}
		if($('#editCardModalprint .sample3').val()!=""){
			sample.push({
				url:$('#editCardModalprint .sample3').val(),
				type:'img'
			});
		}
		var reviewstandard = [];
		$("input[ru='review']",$('#editCardModalprint')).each(function () {	
			reviewstandard.push('{"standard":"'+$(this).val()+'"}');
         });


		var driver = [];
		$("input[rw='driver']",$('#editCardModalprint')).each(function () {	
			driver.push({
				'driver':$(this).val()
			});//driver
         });
		
		var id = $('#editCardModalprint .id').val();
		if ("" != id) {
			var map = {
				cardId : $('#editCardModalprint .id').val(),
				stageId : $('#card-main-content .stageId').val(),// 阶段ID
				name : $('#editCardModalprint .name').val(),// 名称
				description : "",// 描述,保留字段但是不保存
				img : $('#editCardModalprint .imgPrint').val(),// 默认图片
				type : $('#editCardModalprint .type').val(),// 卡片类型,健康卡,活动卡
				taskType : $('#editCardModalprint .taskType').val(),// 任务完成方式
				expire : $('#editCardModalprint .expire').val(),// 时效
				reviewTime : $('#editCardModalprint .reviewTime').val(),// 评审时长
				tipTitle : $('#editCardModalprint .tipTitle').val(),// 小贴士标题
				tipDetail : $('#editCardModalprint .tipDetail').val(),// 小贴士具体描述
				playTime : '0',// 播放时长
				uploadTip : $('#editCardModalprint .uploadTip').val(),// 上传提示
				standard : reviewstandard,// 评审标准
				drivers : driver,// 操作简介
				sample : sample,// 样例教程,
				monthAge:$('#editCardModalprint .monthAge').val(),
				sort:$('#editCardModalprint .sort').val(),
				veidooMsg : veidoo
			// 维度信息
			}
			$.postJson(cp + '/card/edit', map, function(data) {
				if (data.code = 'A00000') {
					window.location.reload();
				}
			});
		} else {
			var map = {
				stageId : $('#card-main-content .stageId').val(),// 阶段ID
				name : $('#editCardModalprint .name').val(),// 名称
				description : "",// 描述,保留字段但是不保存
				img : $('#editCardModalprint .imgPrint').val(),// 默认图片
				type : $('#editCardModalprint .type').val(),// 卡片类型,健康卡,活动卡
				taskType : $('#editCardModalprint .taskType').val(),// 任务完成方式
				expire : $('#editCardModalprint .expire').val(),// 时效
				reviewTime : $('#editCardModalprint .reviewTime').val(),// 评审时长
				tipTitle : $('#editCardModalprint .tipTitle').val(),// 小贴士标题
				tipDetail : $('#editCardModalprint .tipDetail').val(),// 小贴士具体描述
				playTime : '0',// 播放时长
				uploadTip : $('#editCardModalprint .uploadTip').val(),// 上传提示
				standard : reviewstandard,// 评审标准
				drivers : driver,// 操作简介
				sample : sample,// 样例教程,
				monthAge:$('#editCardModalprint .monthAge').val(),
				sort:$('#editCardModalprint .sort').val(),
				veidooMsg : veidoo// 维度信息


			}
			$.postJson(cp + '/card/create', map, function(data) {
				if (data.code = 'A00000') {
					window.location.reload();
				}
			});
		}
	}

这里:

postJson
是自己封装的AJAX方法,就当作AJAX看就行。 这个是,把页面输入的信息,通过ajax发送到后台,很简单的。

下面是后台代码:

long stageId = Long.parseLong( map.get("stageId").toString());//阶段ID
       	String name = map.get("name").toString();//名称
       	String img =  map.get("img").toString();//默认图片
       	String description =  map.get("description").toString();//描述
       	String type = map.get("type").toString();//卡片类型,健康卡,活动卡Long.parseLong( (String) map.get("type"));
       	String taskType =  map.get("taskType").toString();//任务完成方式
       	String expire = map.get("expire").toString();//时效
       	long reviewTime = Long.parseLong(map.get("reviewTime").toString());//评审时长
       	String tipTitle = map.get("tipTitle").toString();//小贴士标题
       	String tipDetail = map.get("tipDetail").toString();//小贴士具体描述
       	long playTime = Long.parseLong( map.get("playTime").toString());//阶段ID
       	String uploadTip = map.get("uploadTip").toString();//上传提示
       	List standard = (ArrayList) map.get("standard");//评审标准
       	List drivers = (ArrayList) map.get("drivers");//操作简介
       	List sample = (ArrayList) map.get("sample");//样例教程,
       	List veidooMsg = (ArrayList) map.get("veidooMsg");         //维度信息
       	
       	String monthAge = map.get("monthAge").toString();//小贴士具体描述
       	long sort = Long.parseLong( map.get("sort").toString());//阶段ID
       	for (int i = 0; i < drivers.size(); i++) {
			System.out.println( drivers.get(i));
		}
       	DefaultHttpClient httpClient = new DefaultHttpClient();
   		HttpPost method = new HttpPost(urlConfig.getApiUrl()+"/baby-server/card/create");
   		
   		JSONObject jsonParam = new JSONObject();
   		jsonParam.put("stageId", stageId);
   		jsonParam.put("name", name);
   		jsonParam.put("description", description);
   		jsonParam.put("img", img);
   		jsonParam.put("monthAge", monthAge);
   		jsonParam.put("sort", sort);
   		jsonParam.put("type", type);
   		jsonParam.put("taskType", taskType);
   		jsonParam.put("expire", expire);
   		jsonParam.put("reviewTime", reviewTime);
   		jsonParam.put("tipTitle", tipTitle);
   		jsonParam.put("tipDetail", tipDetail);
   		jsonParam.put("playTime", playTime);
   		jsonParam.put("uploadTip", uploadTip);
   		jsonParam.put("standard", standard);
   		jsonParam.put("drivers", drivers);
   		jsonParam.put("sample", sample);
   		jsonParam.put("veidooMsg", veidooMsg);
   		System.out.println("card create 中jsonParam是:"+jsonParam);
   		StringEntity entity = new StringEntity(jsonParam.toString(), "utf-8");
   		entity.setContentEncoding("UTF-8");
   		entity.setContentType("application/json");
   		method.setEntity(entity);
   		HttpResponse resGet;
   		JSONObject resJSON = new JSONObject();

这个就是从前台页面获取的数据,打包成JSON,然后发送到开放的端口进行处理了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值