根据字段名称和字段类型自动生成json示例

在写接口文档时,需要附上接口请求或返回的json示例,如果接口已经存在则可以直接从接口返回结果中拷贝。如果接口还未定义,则可以使用下面工具来生成json示例,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>

</head>
<body>
    <h3>使用方法:将字段名称列和字段类型列数据拷贝到待解析文本域中,点击解析按钮即可自动生成json实例并自动赋值到粘贴板中。<br/>支持Excel表格数据和word中的表格数据</h3>
    <h1>待解析文本</h1>
    <textarea id="AnswerText" rows="15" style="width:500px"></textarea>
	<button id="BtnNow" style="width:50px;height:50px;">解析</button>
    <br />
	<h1>解析后文本</h1>
    <textarea id="AnswerAnalysis" rows="20" style="width:500px"></textarea>

    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
    <script type="text/javascript">
        $("#BtnNow").on("click", function () {
            var vHtml = "";
            var _answerText = $("#AnswerText").val();
            if (_answerText != "") {
                var vArr = _answerText.split("\n");//按行拆分
                //console.log(vArr);
                for (var i = 0; i < vArr.length; i++) {
                    var v1 = vArr[i];
                    var vArr1 = v1.split("\t");//按空格拆分

                    var filedName = vArr1[0];//字段名称英文
					var fieldType= vArr1[1];//字段类型
					var fieldValue="";

					if(fieldType=='字符串'){
						if(filedName =='OPERATE_TYPE'){
							fieldValue="I";
						}else if(filedName =='CREATE_USERNAME' || filedName =='OPERATE_USERNAME' || filedName =='AUDIT_USERNAME'){
							fieldValue="管理员";
						}else if(filedName =='FID'  || filedName =='RESOURCE_ID'){
							fieldValue="1";
						}else if(filedName =='CORPNO'  || filedName =='SOURCECORPNO'){
							fieldValue="CO000001";
						}else{
							fieldValue="示例文字";
						}
						
						vHtml += '"'+ vArr1[0] + '":"' + fieldValue + '",\n'//要输出的文本
					}else if(fieldType=='数字'){
						fieldValue=1;
						vHtml += '"'+ vArr1[0] + '":' + fieldValue + ',\n'//要输出的文本
					}else if(fieldType=='日期'){
						
                        if(filedName=="FCREATETIME" || filedName=="FLASTUPDATETIME" || filedName=="CREATE_DATE" || filedName=="OPERATE_DATE" || filedName=="AUDIT_DATE"){
							fieldValue=getNowFormatDateAll();
                        }else{
							fieldValue=getNowFormatDate();
                        }

                        vHtml += '"'+ vArr1[0] + '":"' + fieldValue + '",\n'//要输出的文本
						
					 }else{
						fieldValue="";
						vHtml += '"'+ vArr1[0] + '":"' + fieldValue + '",\n'//要输出的文本
					}
                }

				var jsonStr="[{" + vHtml +"},{"+ vHtml + "}]";
                $("#AnswerAnalysis").html(jsonStr);

				//将待解析文本域清空
                $("#AnswerText").val("");

				//将内容复制到粘贴板
				var text = $('#AnswerAnalysis'); 
				text.select();
				document.execCommand("Copy");
            }
        });

		
		//获取当前时间,格式YYYY-MM-DD
		function getNowFormatDate() {
			var date = new Date();
			var seperator1 = "-";
			var year = date.getFullYear();
			var month = date.getMonth() + 1;
			var strDate = date.getDate();
			if (month >= 1 && month <= 9) {
				month = "0" + month;
			}
			if (strDate >= 0 && strDate <= 9) {
				strDate = "0" + strDate;
			}
			var currentdate = year + seperator1 + month + seperator1 + strDate;
			return currentdate;
		}


		function add(m){
			return m<10?'0'+m:m
		}
 
		//获取当前时间,格式YYYY-MM-DD hh:mm:ss
		function getNowFormatDateAll() {
			var date = new Date();
			var seperator1 = "-";
			var year = date.getFullYear();
			var month = date.getMonth() + 1;
			var strDate = date.getDate();
			if (month >= 1 && month <= 9) {
				month = "0" + month;
			}
			if (strDate >= 0 && strDate <= 9) {
				strDate = "0" + strDate;
			}
			var currentdate = year + seperator1 + month + seperator1 + strDate;

			var h = date.getHours();
			var mm = date.getMinutes();
			var s = date.getSeconds();

			currentdate = currentdate +' '+add(h)+':'+add(mm)+':'+add(s);

			return currentdate;
		}
    </script>
</body>
</html>

使用方法:

1.将上面的代码拷贝出来,放到txt文件中,然后把文件后缀名改为html(网页格式),使用浏览器打开。打开后可以看到如下页面:

2.将要生成的字段名称和字段类型放入待解析文本域中,点击解析按钮:

3.点击解析按钮后,就可以看到在下方文本域中自动生成了json字符串。

4.这里会生成两个json对象,字段信息是一样的,在每个对象的最后一个字段后面,需要把逗号删掉,不然json解析会失败。

5.将上面生成的json字符串进行解析看下格式对不对:

放入解析网页,可以正常解析,就说明生成的json字符串格式是对的。

这个工具的代码可以根据实际情况进行修改,使用这个小工具的好处是不用一个字段一个字段去写。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用 JSON 类型字段存储动态数据时,操作该字段的 SQL 语句需要使用 MySQL 中提供的 JSON 函数。在 MyBatis 中,可以使用 XML 映射文件或注解来编写 SQL 语句,具体操作步骤如下: 1. 创建实体类 首先,需要创建一个实体类来表示包含 JSON 类型字段的表。例如,创建一个名为 `MyEntity` 的实体类: ```java public class MyEntity { private Integer id; private String dynamicData; // getter and setter } ``` 其中,`id` 表示主键字段,`dynamicData` 表示存储动态数据的 JSON 类型字段。 2. 创建 XML 映射文件或注解 使用 XML 映射文件或注解来编写 SQL 语句,操作 `dynamic_data` 字段中的数据。例如,以下是一个使用 XML 映射文件的示例: ```xml <!-- MyEntityMapper.xml --> <mapper namespace="com.example.MyEntityMapper"> <resultMap id="myEntityMap" type="com.example.MyEntity"> <id property="id" column="id"/> <result property="dynamicData" column="dynamic_data" jdbcType="JSON"/> </resultMap> <select id="findById" resultMap="myEntityMap"> SELECT * FROM my_table WHERE id = #{id} </select> <insert id="insert" parameterType="com.example.MyEntity"> INSERT INTO my_table (id, dynamic_data) VALUES (#{id}, #{dynamicData, jdbcType=JSON}) </insert> <update id="update" parameterType="com.example.MyEntity"> UPDATE my_table SET dynamic_data = #{dynamicData, jdbcType=JSON} WHERE id = #{id} </update> </mapper> ``` 以上示例中,定义了一个 `resultMap` 来映射查询结果到 `MyEntity` 实体类,使用 `jdbcType=JSON` 来指定 `dynamicData` 字段的数据类型JSON。然后,定义了 `findById`、`insert` 和 `update` 三个 SQL 语句,分别用于查询、插入和更新数据。 如果使用注解来编写 SQL 语句,则可以在实体类中添加对应的注解,例如: ```java public interface MyEntityMapper { @Select("SELECT * FROM my_table WHERE id = #{id}") @Results({ @Result(property = "dynamicData", column = "dynamic_data", jdbcType = JdbcType.JSON) }) MyEntity findById(Integer id); @Insert("INSERT INTO my_table (id, dynamic_data) VALUES (#{id}, #{dynamicData, jdbcType=JSON})") int insert(MyEntity entity); @Update("UPDATE my_table SET dynamic_data = #{dynamicData, jdbcType=JSON} WHERE id = #{id}") int update(MyEntity entity); } ``` 3. 使用 MyBatis 操作数据 最后,在代码中使用 MyBatis 操作数据。例如,以下是一个查询 `MyEntity` 实体类的示例: ```java public class MyService { private final SqlSessionFactory sqlSessionFactory; public MyService(SqlSessionFactory sqlSessionFactory) { this.sqlSessionFactory = sqlSessionFactory; } public MyEntity findById(Integer id) { try (SqlSession session = sqlSessionFactory.openSession()) { MyEntityMapper mapper = session.getMapper(MyEntityMapper.class); return mapper.findById(id); } } } ``` 在以上示例中,首先创建了一个 `SqlSessionFactory` 对象,用于创建 `SqlSession` 对象和 `MyEntityMapper` 接口的实例。然后,使用 `session.getMapper(MyEntityMapper.class)` 方法获取 `MyEntityMapper` 的实例,并使用 `mapper.findById(id)` 方法执行查询操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值