如何查表后生成json数据 求解答

六道对穿肠 2013-10-10 04:37:25
需要生成如下的json

​{
"response": "cart",
"cart":{
listmap "cartitem": [ //购物车项
:{ ---product
map--> "product":{
"id":"1200001", //商品ID
"name": "雅培金装", //商品名称
"pic":"", //商品图片URL
"price":"89", //商品售价
"number": 0, //商品库存数量,0为缺货或下架
"uplimit":"10" //商品购买数量上限
listmap ------->  "product_property":[ //属性
{
"key": "颜色",
"value": "红色",
},
{
"key": "大小",
"value": "M",
}
],
"isgift":"false" //是否赠品
         }
"prodNum":3 //商品数量
},

{
"product":{
"id":"1200001", //商品ID
"name": "雅培金装", //商品名称
"pic":"", //商品图片URL
"price":"89", //商品售价
"number": 0, //商品库存数量,0为缺货或下架
"uplimit":"10", //商品购买数量上限
"product_property":[ //属性
{
"key": "颜色",
"value": "红色",
},
{
"key": "大小",
"value": "M",
}
]
           "isgift":"true" //是否赠品
},
"prodNum":1 //商品数量
}
],
"prom":[ //享受促销信息
"促销信息一",
"促销信息二"
],
//购物车总计
"totalCount":"3", //商品数量总计
"totalPrice":"230", //商品金额总计
"totalPoint":"230" //商品积分总计
}
}



现在有cart这张表
id priduct_id buycount userid
1 1000162 2 10000
2 1000161 1 10000
3 1000229 2 10000



...全文
251 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
失落夏天 2013-10-11
  • 打赏
  • 举报
回复
定义就不对, 应该定义成对象,然后查询多条就是List<Object>这样。。
六道对穿肠 2013-10-10
  • 打赏
  • 举报
回复
引用 5 楼 GreatStep 的回复:
用json转化工具, json-lib-2.3-jdk15.jar (个人较常用) jackson-all-1.7.6.jar 先将数据库捞出来的listmap 一步转成 json, 然后 拼装 response 和 cart 这2个字段就行了。 工具都帮你做完了,调用一下方法罢了,怎么使用自己百度一下啦。
先将数据库捞出来的listmap 关键只有一个listmap就好了, 那是多层嵌套,把我嵌套晕了,,
六道对穿肠 2013-10-10
  • 打赏
  • 举报
回复
引用 3 楼 AA5279AA 的回复:
楼主首先分清错误点在哪里 是从数据库中查数据出了问题? 是数据库中的数据转化为对象的时候出了问题? 是对象转化为json的时候出了问题?
是从数据库中查数据出了问题 查出来要么只能查出来一条,,因为定义的是map, 要是定义成listmap 查出来就不符合结果了..
尘缘udbwcso 2013-10-10
  • 打赏
  • 举报
回复
json-lib.jar List list = new ArrayList();//list可以是查询结果 list.add()...... JSONArray jsonArr = JSONArray.fromObject(list); String jsonStr = jsonArr.toString();
杏子与鸡腿 2013-10-10
  • 打赏
  • 举报
回复
用json转化工具, json-lib-2.3-jdk15.jar (个人较常用) jackson-all-1.7.6.jar 先将数据库捞出来的listmap 一步转成 json, 然后 拼装 response 和 cart 这2个字段就行了。 工具都帮你做完了,调用一下方法罢了,怎么使用自己百度一下啦。
全能码农-ss 2013-10-10
  • 打赏
  • 举报
回复
定义一个和json结构相同的类。json里边的Object类型也定义成类。 获取数据后,实例化,并复制。通过JSONObject(或者Gson)转换之。
失落夏天 2013-10-10
  • 打赏
  • 举报
回复
楼主首先分清错误点在哪里 是从数据库中查数据出了问题? 是数据库中的数据转化为对象的时候出了问题? 是对象转化为json的时候出了问题?
tony4geek 2013-10-10
  • 打赏
  • 举报
回复
可以分别用工具转化为json 最后拼装。
六道对穿肠 2013-10-10
  • 打赏
  • 举报
回复
这是数据库的查询 !!!!!!!!!总是不对 求解答
package com.ithm21.dao;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;

import com.ithm21.util.DataSourceManager;

public class CartDaoImpl {

	private QueryRunner runner = new QueryRunner(
			DataSourceManager.getDataSource());

	/**
	 * 获取购物车里面的数据
	 * 
	 * @param productId
	 * @return
	 */
	public Map<String, Object> getCart(String productId) {

		// 购物车
		Map<String, Object> cart = new HashMap<String, Object>();
		

		// 购物车条目
		List<Map<String, Object>> cartitem = new ArrayList<Map<String, Object>>();

		// 商品
		Map<String, Object> product = new HashMap<String, Object>();
		
		//多个商品
		Map<String,Object> productList = new HashMap<String,Object>();

		// 商品属性
		List<Map<String, Object>> product_property = new ArrayList<Map<String, Object>>();

		try {
			// 先查出单个商品
			String sql = "SELECT product.id,product.name,pic.pic,product.price,product.number,product.buyLimit FROM product,pic WHERE product.id=pic.product_id AND product.id = ? ";
			product = runner.query(sql, new MapHandler(), productId);
			
			//将单个商品添加进入商品集合
			productList.put("productlist", product);

			// 查出商品的属性,
			sql = "SELECT property.key,property.value FROM property WHERE id IN(SELECT property_id FROM product_property_filter  WHERE product_id = ?)";
			product_property = runner.query(sql, new MapListHandler(),
					productId);

			// 将属性加入商品里面去
			product.put("product_property", product_property);

			// 不是促销商品(这里的属性应当定义成变量)
			product.put("isgift", "false");

			// 将商品添加进入cartitem
			cartitem.add(productList);

			/**
			 * "prom":[ //享受促销信息 "促销信息一", "促销信息二" ],
			 */
			List<String> prom = new ArrayList<String>();
			prom.add("促销信息一");
			prom.add("促销信息二");
			// 将促销信息添加到购物车
			cart.put("prom", prom);

			// 购物车总计
			// "totalCount":"3", //商品数量总计
			// "totalPrice":"230", //商品金额总计
			// "totalPoint":"230" //商品积分总计
			int totalCount = cartitem.size();
			int totalPrice =

			(int) cart.put("totalCount", totalCount);
			cart.put("cartitem", cartitem);
			cart.put("response", "cart");

			return cart;

		} catch (Exception e) {
			e.printStackTrace();
		}

		return null;
	}
}

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧