项目中多条数据保存的json实例

//js代码function checkCode(num){
	var typeid = $("#typeid").val();
	if(typeid == ""){
		alert("请选择信息类别");
		return false ;
	}
	var i = 1;
	 for(i=1;i<=num;i++){ //判断每一行是否填写相关的值
		  var dataname =  $("input[name=‘dataname"+i+"‘]").val();
		  var isopen=$("input:radio[name=‘isopen"+i+"‘]:checked").val();
		  if(dataname == ""){
			  alert("请输入数据名称");
			  return false;
		  }
	 }
	 return true;
}

//自动新增一行
$(function(){
		 $( ".table1" ).on( "click",".add", function() {
			var num=$(".table1").find(".clone-tr").length;
			if(checkCode(num)){
				 ht = $(this).closest(".clone-tr").clone(true);

			// var num=$(".table1").find(".clone-tr").length;
			 if(num<20){
				  var check=$(ht).find(".check-box");
				  var inp=$(ht).find("input[type=‘text‘]");
				  var num2 = num + 1
				  $(check).eq(0).find("input[type=‘radio‘]").attr("name", ‘openway‘+num2);
				  $(check).eq(1).find("input[type=‘radio‘]").attr("name", ‘isopen‘+num2);
				  inp.val("");
				  inp.filter(function(){
				  	 return $(this).attr("name") == "dataname1";
				  }).attr("name", ‘dataname‘+num2);

				  inp.filter(function(){
				  	 return $(this).attr("name") == "datacontent1";
				  }).attr("name", ‘datacontent‘+num2);

				  inp.filter(function(){
				  	 return $(this).attr("name") == "openInterface1";
				  }).attr("name", ‘openInterface‘+num2);

				  inp.filter(function(){
				  	 return $(this).attr("name") == "noOpenInterface1";
				  }).attr("name", ‘noOpenInterface‘+num2);

				  $(ht).find(".operate").remove();
				  $(this).closest(".table1 tbody").prepend(ht);			  

				  $("#numid").val(num);
				  $("#num2id").val(num2); //保存添加后的tr数目
			 }
		   }

         });
		 $( ".table1" ).on( "click",".delete", function() {
			 var num=$(".table1").find(".clone-tr").length;
			 if(num>1){
				  $(this).closest(".table1 tbody").find("tr").eq(0).remove();
				 }

         });

	    $("#submitid").click(submitAnswer);	  

});

//拼json 串
function writeToJson(num){
	 var i = 1;
	  var jsonData = "[";
	  for(i=1;i<=num;i++){
		  var dataname =  $("input[name=‘dataname"+i+"‘]").val();
		  var datacontent =  $("input[name=‘datacontent"+i+"‘]").val();
		  var openInterface =  $("input[name=‘openInterface"+i+"‘]").val();
		  var noOpenInterface =  $("input[name=‘noOpenInterface"+i+"‘]").val();
		  var openway=$("input:radio[name=‘openway"+i+"‘]:checked").val();
		  var isopen=$("input:radio[name=‘isopen"+i+"‘]:checked").val();
		  if(i == num ){
			  jsonData += "{‘dataname‘:‘"+dataname+"‘,‘datacontent‘:‘"+datacontent+"‘,‘openway‘:‘"+openway+"‘,‘isopen‘:‘"+isopen+"‘,‘openInterface‘:‘"+openInterface+"‘,‘noOpenInterface‘:‘"+noOpenInterface+"‘}";
		  }else{
			  jsonData += "{‘dataname‘:‘"+dataname+"‘,‘datacontent‘:‘"+datacontent+"‘,‘openway‘:‘"+openway+"‘,‘isopen‘:‘"+isopen+"‘,‘openInterface‘:‘"+openInterface+"‘,‘noOpenInterface‘:‘"+noOpenInterface+"‘},";
		  }
	  }
	  jsonData += "]" ;
	  //alert("--------"+jsonData);
	  return jsonData ;
}
function submitAnswer(){
	 var num = $("#num2id").val();
	 if(num == ""){
		 num = 1;
	 }
	 if(checkCode(num)){
		 var cstr = writeToJson(num); // 拼 json 串
		 var typeid = $("#typeid").val();
		 $.ajax({
		        url: "/saveSurWXData.do",
		        cache: false,
		        type: "POST",
		        dataType: "json",
		        data: {
		            "content":cstr,
		            "typeid":typeid
		        },
		        success:function(data){
		        	var a = data.topicId;	//后台返回json到前台后处理
		        	$("#topicId").val(a);
		        	alert("保存成功");
		        	window.location.reload();
		        	},
		        error: function(){alert("保存失败");}
		    });
	 }

}

 jsp 页面:

 <tr class="clone-tr">
                          <td><input type="text" class="inp" name="dataname1"  placeholder="请输入"/></td>
                          <td><input type="text" class="inp" name="datacontent1"  placeholder="请输入"/></td>

                          <td>
                          <div class="check-box">
                            <label><input name="isopen1" type="radio" value="是" checked>是</label>
                            <label><input type="radio" name="isopen1" value="否">否</label>
                           </div>
                          </td>
                          <td>
                            <p class="box-b">
                                <input style="width: 160px;" type="text" class="inp" name="noOpenInterface1" placeholder="请输入"/>
                            </p>
                          </td>
                          <td class="btn-operate"><span class="operate"><a class="add">+</a><a class="delete">-</a></span> </td>
                        </tr>

  后台处理json 并返回值:

String jsonStr = this.getRequest().getParameter("content");
		JSONArray jsonArray = JSONArray.fromObject(jsonStr);
		for(int i=0;i<jsonArray.size(); i++){
			JSONObject jsonJ = jsonArray.getJSONObject(i);
			String dataname = jsonJ.getString("dataname");
			String datacontent = jsonJ.getString("datacontent");

			String openway = jsonJ.getString("openway");
			String isopen = jsonJ.getString("isopen");

			String openInterface = jsonJ.getString("openInterface");
			String openperiod = jsonJ.getString("noOpenInterface");
              }

    //返回json 到前台

        JSONObject jsonObject = new JSONObject();
		jsonObject.put("topicId", topicId);
	    this.getPrintWriter(jsonObject);

  private void getPrintWriter(Object object) {
		try {
			out = this.getResponse().getWriter();
			out.print(object);
			out.close();
		} catch (IOException e) {
			System.out.println("error:"+e.getMessage());
		}
	}

 

当然还有 struts 的配置:

<action name="*" class="com.*action.*" method="*">
<result name="success" type="json"></result>
</action>

  

 

时间: 2024-08-08 22:05:46

项目中多条数据保存的json实例的相关文章

关于项目中批量修改数据

一.在项目中批量修改数据时应该写一条Update的Sql语句来执行,不能先将所要修改的数据筛选出来,然后再遍历修改. 原因: 1.这样只操作一次数据库,而后者需要操作无数次,性能很差. 2.绕圈子.需要修改数据时直接修改就行,不需要先全部查出来再逐条修改. 3.修改数据时时可以使用join的,例如: 1 update acc set acc.Creator = '滕晓梅' 2 from Accidents acc 3 inner join CompensationCase cc on acc.I

关于项目中的DAL数据接入层架构设计

摘要:项目中对关系型数据库的接入再寻常不过,也有海量的ORM工具可供选择,一个一般性的DAL数据接入层的结构却大同小异,这里就分享一下使用Hibernate.Spring.Hessian这三大工具对DAL层的具体实现方法,也是对之前使用的一个总结. 关键词:Hibernate, Spring, Hessian, DAL, 数据接入层, 架构设计 注意:以下配置或代码运行在Hibernate4.2.5,Spring3.2.4,Hessian4.0.37,Tomcat7.0.47环境下 一.Mode

项目中进度条实现臆想

关于进度条的实现,主要把握点就是动态修改,且是行内缓冲更新. 关于这点就需要了解printf()的行缓冲问题了 可以做如下验证 #include <stdio.h> #include <stdlib.h> int main() { // printf("test"); case1:3秒后输出 printf("test\n"); //case2:立即输出 sleep(3); return 0; } 两个case的区别就在于\n了,所以问题的症结

随机获得MySQL数据库中100条数据方法 驾照题库项目 MVC架构 biz业务层的实现类 根据考试类型rand或order通过dao数据访问层接口得到数据库中100或全部数据

package com.swift.jztk.biz; import java.util.Collections; import java.util.Comparator; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Random; import com.google.gson.Gson; import com.swift.jztk.bean.Result

用SQL语句将数据表中的数据保存为JSON格式

没有找到好的工具,只想到了拼字符串的方式,用   NVARCHAR(MAX)  可能有截断,不推荐使用,方法中使用了 FOR XML PATH('') 实现,有关其使用方法参考这里 表结构: SQL 语句: SELECT '{"id":'+CONVERT(NVARCHAR(20),id)+',"areacode":'+areacode+',"areaname":"'+areaname+'","paremt_areac

项目中表中每条数据的序号显示自增的方法

一:如果用的是smarty模板 smarty有一个内置函数,用在{[email protected]}记录页面显示的条数 iteration是当前循环的次数,和index不同,iteration是从1开始.iteration在每次循环的时候都会加一 二:利用分页$i = ($page-1)*$per  echo  "<td>".++$i."</td>"; 序号初值 = (页号-1)*每页行数+1

scrapy爬虫成长日记之创建工程-抽取数据-保存为json格式的数据

在安装完scrapy以后,相信大家都会跃跃欲试想定制一个自己的爬虫吧?我也不例外,下面详细记录一下定制一个scrapy工程都需要哪些步骤.如果你还没有安装好scrapy,又或者为scrapy的安装感到头疼和不知所措,可以参考下前面的文章安装python爬虫scrapy踩过的那些坑和编程外的思考.这里就拿博客园来做例子吧,抓取博客园的博客列表并保存到json文件. 环境:CentOS 6.0 虚拟机 scrapy(如未安装可参考安装python爬虫scrapy踩过的那些坑和编程外的思考) 1.创建

夺命雷公狗---node.js---20之项目的构建在node+express+mongo的博客项目5mongodb在项目中实现添加数据

我们上一步就引入了mongodb了,那么下一步就要开始写添加数据了,不过有个前提是先将表单的数据处理好: 最基本的这部现在已经成功了,因为最基本的这步就是先将表单处的提交方式和提交地址给处理好,这里和PHP的基本上是一样... 然后我们在后端处理下接收的内容.. 已经在后端成功接收到了,那么下一步就是直接让他入库了... /** * Created by leigood on 2016/8/31. */ var express = require('express'); var router =

sqlite数据库中第一条数据查不出来!

/** *  * Title: selectAllPhone  *Description:查询所有的Phone对象  * @return  * @see * com.sms.ntlm.dao.PhoneDao#selectAllPhone() */ @SuppressLint("SimpleDateFormat") @SuppressWarnings("deprecation") @Override public List<Phone> selectAl