做个微信小程序(后台管理:jsp+mysql)
跟着视频做了个小程序商城,但是API是现成的,自己的项目还得自己做好后台再做前端,于是开始做后台,其中Java连接数据库已经熟悉,现在的问题是把获取的Object对象类型数据需要转换成小程序能直接获取的Json格式。
开始网上查找List对象转Json,得到的结果大致都是利用net.sf.json包下JSONArray的静态方法:fromObject(list) 直接用此方法快捷转换JSON,结果报一堆错误,原因是缺少一些其他的依赖包,逐个排查后总共下了这些包:
String对象转Json示例:
String jsonStr = "{\"key1\":\"One\",\"key2\":\"110\"}";
JSONObject jsonObject = JSONObject.parseObject(jsonStr);
String parserJsonStr = JSONObject.toJSONString(jsonObject);
out.println(parserJsonStr);
到这里是可行的,但当我改成List的时候出错了:
大概是版本问题,由于过程太繁琐,版本问题我也不想改成低版本的,要改得全改,做到这里就停滞不前了,于是我开始寻找其他方法,果然功夫不负有心人,我找到了阿里巴巴的一个将Object转为json数据的工具包——fastjson (https://github.com/alibaba/fastjson:
下载链接
)
实现方法非常简单,导入下好的jar包后,这样这样然后那样那样就好了
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.List"
import="com.alibaba.fastjson.*"
%>
<jsp:useBean id="Carpool" class="objects.Carpoolinfo"></jsp:useBean>
<%
String str1="我发起的";String str2="拼车中";
List carpool = Carpool.getAllCarpool(str1,str2);
String s=JSON.toJSONString(carpool);
out.println(s);
%>
运行后结果:
小程序端:
page({
data: {
list: [],
},
onLoad: function (options) {
var that = this;
wx.request({
url: 'http://localhost:8081/CarSystem/NewFile.jsp',
data: {
},
success(res) {
console.log(res);
that.setData({
list: res.data
})
}
})
}
})
其他:
List转Json
List<Student> students = new ArrayList();
String str = JSON.toJSONString(students); // List转json
Json 转List 方法一
String json = ""; //获取的Json数据
List<Student> students = JSON.parseObject(json,new TypeReference<List<Student>>(){}); // Json 转List
Json 转List方法二
List<Student> students = JSON.parseArray(json,Student.class);
版权声明:本文为weixin_42936768原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。