android map封装json数据,List<Map<String,String>如何封装到JSON对象中,然后再还原成List<Map<String,String&gt...

List怎么封装到JSON对象中,然后再还原成List

服务器端,需要将List型的数据,变成一个可以传给android手机端的JSON对象。然后在android端,将收到的JSON原样还原为List

对JSON用法不是很精通,只会传String型的键值对。不知道List该怎么处理了。请高手指点

------解决方案--------------------

库用的是json-lib

TestListMapJson.java

package com.armslee.json.test.cases;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import net.sf.json.JSONArray;

public class TestListMapJson {

/**

* @param Lavender

*/

public static void main(String[] args) {

Map map1 = new HashMap();

Map map2 = new HashMap();

Map map3 = new HashMap();

List> list = new ArrayList>();

map1.put("name","小明");

map1.put("age","23");

map1.put("sex","男");

list.add(map1);

map2.put("name","小王");

map2.put("age","24");

map2.put("sex","女");

list.add(map2);

map3.put("name","小张");

map3.put("age","22");

map3.put("sex","男");

list.add(map3);

String jsonStr = JSONArray.fromObject(list).toString();

JSONArray ja = JSONArray.fromObject(jsonStr);

@SuppressWarnings({ "deprecation", "unchecked" })

List> listBack = JSONArray.toList(ja, HashMap.class);

System.out.println(listBack.size());

int i = 0;

for (Map map : listBack) {

i++;

StringBuffer sb = new StringBuffer();

sb.append("第 "+i+" 个MAP ---》");

if(map.containsKey("name")){

sb.append(" Name:"+map.get("name"));

}

if(map.containsKey("age")){

sb.append(" Age:"+map.get("age"));

}

if(map.containsKey("sex")){

sb.append(" Sex:"+map.get("sex"));

}

System.out.println(sb.toString());

}

}

}

------解决方案--------------------

andriod sdk本身就自带了json解析包用org.json.JSONArrray jsonArray=new org.json.JSONArray(jsonStr);像这种东西楼主应该多看api和andriod官网。andriod3.0后还自带了google的Gson

您可以通过以下步骤将获取的grpList2集合以分页的方式传给前端: 1. 将grpList2集合按照需要分页的大小进行分割,得到多个子集合; 2. 将每个子集合转换为对应的JSON格式字符串,可以使用JSON库来实现这一步骤; 3. 将分割后的子集合和总页数等信息封装一个包含所有分页数据Map对象; 4. 将封装好的Map对象转换为JSON格式字符串,并通过HTTP响应的方式传递给前端。 示例代码如下: ```java // 定义每页显示的记录数 int pageSize = 10; // 计算总页数 int totalPage = (grpList2.size() + pageSize - 1) / pageSize; // 将grpList2按pageSize进行分页,得到多个子集合 List<List<HashMap<String, String&gt;&gt;&gt; pageList = new ArrayList<&gt;(); for (int i = 0; i < totalPage; i++) { int from = i * pageSize; int to = Math.min(from + pageSize, grpList2.size()); List<HashMap<String, String&gt;&gt; subList = grpList2.subList(from, to); pageList.add(subList); } // 将每个子集合转换为对应的JSON格式字符串 List<String&gt; jsonList = new ArrayList<&gt;(); for (List<HashMap<String, String&gt;&gt; subList : pageList) { String jsonStr = JSON.toJSONString(subList); jsonList.add(jsonStr); } // 封装分页数据,包括分割后的子集合列表和总页数等信息 Map<String, Object&gt; pageData = new HashMap<&gt;(); pageData.put("pageList", jsonList); pageData.put("totalPage", totalPage); // 将封装好的Map对象转换为JSON格式字符串,并通过HTTP响应的方式传递给前端 String jsonResult = JSON.toJSONString(pageData); response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); response.getWriter().write(jsonResult); ``` 请注意,这里使用了阿里巴巴的JSON库来实现JSON格式转换,如果您的项目没有集成该库,可以自行选择其他JSON库进行实现。同时,具体的分页算法实现可能因项目需求而有所不同,这里仅作为示例供参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值