首页 > 其他分享 >关于map/list集合 和 json串的相互转换

关于map/list集合 和 json串的相互转换

时间:2023-06-12 13:22:45浏览次数:33  
标签:map list JSON json mapJson var com

JSON.parse(tempWhiteBoardTextBook); // 将接收到的服务器字符串转为JavaScript对象; JSON.stringify(tempWhiteBoardTextBook); // 将JavaScript对象或值转换为JSON字符串,一般是发送json数据到服务器;   1、使用此net.sf.json.JSONObject包   将map/list集合 或者 json串转为 JSONObject 对象,然后互相转的时候调用强转或者toString方法即可;    

    // map集合转json
      net.sf.json.JSONObject mapJson = net.sf.json.JSONObject.fromObject(map);
      System.out.println("mapJson == " + mapJson.toString());
      mapJson == {"sex":"man","name":"xiaomo","age":"30"}
 
    // json转map集合
      String jsonString = "{'name':'xiaomo','age':'30','sex':'man'}";
      net.sf.json.JSONObject mapJson = net.sf.json.JSONObject.fromObject(jsonString);
      Map<String,Object> map= (Map<String,Object>)mapJson;
      System.out.println("map == " + map);
      map == {"name":"xiaomo","age":"30","sex":"man"}

 

  2、使用此com.alibaba.fastjson.JSON包   将map/list集合 转为 json, 使用JSON.toJSONString(Object)方法返回的就是json串;    
    // map集合转json
      String mapJson = com.alibaba.fastjson.JSON.toJSONString(map);
      System.out.println("mapJson == " + mapJson);
      mapJson == {"sex":"man","name":"xiaomo","age":"30"}
 
    // json转map集合
      Object jsonMap = com.alibaba.fastjson.JSON.parse(jsonString);
      Map<String,Object> model= (Map<String,Object>)jsonMap;
      System.out.println("model == " + model);
      model == {"name":"xiaomo","age":"30","sex":"man"}
 
    // list集合转json
      String weekListJson = com.alibaba.fastjson.JSON.toJSONString(weekList);
      System.out.println("weekListJson == " + weekListJson);
      weekListJson == ["monday","tuestday","wednesday"]
 
    // json转list集合
      String jsonString = "['monday','tuestday','wednesday']";
      Object parse = com.alibaba.fastjson.JSON.parse(jsonString);
      List<String> jsonList = (List<String>)parse;
      System.out.println("jsonList == " + jsonList);
      jsonList == ["monday","tuestday","wednesday"]

 

  3、使用此com.fasterxml.jackson.databind.ObjectMapper包   
  // map集合转json
    com.fasterxml.jackson.databind.ObjectMapper mapper = new ObjectMapper();
    String mapJson = mapper.writeValueAsString(map);
    System.out.println("mapJson == " + mapJson);
    mapJson == {"sex":"man","name":"xiaomo","age":"30"}
    mapper.writeValue(response.getWriter(), mapJson); // 响应数据,为json,通过流传输数据
 
 
  // list集合转json
    com.fasterxml.jackson.databind.ObjectMapper mapper = new ObjectMapper();
    String weekListJson = mapper.writeValueAsString(weekList);
    System.out.println("weekListJson == " + weekListJson);
    weekListJson == ["monday","tuestday","wednesday"]
    mapper.writeValue(response.getWriter(), weekListJson);// 响应数据,为json,通过流传输数据

 

  4、使用此net.sf.json.JSONArray包   
// list集合转json
    net.sf.json.JSONArray jsonArray = net.sf.json.JSONArray.fromObject(weekList);
    System.out.println("weekListJson == " + jsonArray.toString());
    weekListJson == ["monday","tuestday","wednesday"]
  
  // json转list集合
    String jsonString = "['monday','tuestday','wednesday']";
    net.sf.json.JSONArray fromObject = net.sf.json.JSONArray.fromObject(jsonString);
    List<String> jsonList = (List<String>)fromObject;
    System.out.println("jsonList == " + jsonList);

 

  5、使用此com.alibaba.fastjson.JSONObject包   
// json转对象List集合
    List<Transaction> transactionsList = com.alibaba.fastjson.JSONObject.parseArray(result, Transaction.class);
  
  // json转Object对象
  // 方法一
    com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(result);
    PayPalResult payPalResult = (PayPalResult)JSONObject.toJavaObject(jsonObject, PayPalResult.class);
  // 方法二
    PayPalSubscriptionResult payPalSubscriptionResult = JSONObject.parseObject(result, PayPalSubscriptionResult.class);

 

  6、后台的数据如果是map集合 直接传前台会无法解析,我的做法是 先将map在后台解析为json 再传到前端   
// 后台传值数据
  model.put("templateMap", JSON.toJSONString(templateMap)); 
 
  // 前台接收数据
  <input type='hidden' id="templateMap" value='<c:out value="${templateMap}" />'>
  var templateMap = eval('(' + $("#templateMap").val() + ')');
  for (var key in templateMap){
    // 根据key值作处理
    if(key == templateId){
      for(var i=0; i < templateMap[key].length; i++){
        //遍历,动态赋值
        var param = templateMap[key][i];
      }
    }
  }

 

  7、jsp页面可以内嵌一个url来进行返回值判断 <jsp:include page="/myaccount/student/poster/getStudentPoster.do" flush="true" />   8、如何使用ajax请求提交json格式数据到后台处理   
$.ajax({
    type:"post",
    url:"/admin/student/makeElectronicCertificate.do",
    data:{
      studentName:studentName,
      studyPeriodEn:studyPeriodEn,
      studyPeriodCn:studyPeriodCn,
      studyCategory:studyCategory,
      graduationTime:graduationTime
    },
    dataType:'json',// 声明接收后台传过来的数据格式为json 也有xml和text等 因为这里我做的是json传输
    cache:false,
    success:function(data){
      data = JSON.parse(data); // 将后台传过来的json数据进行解析
      alert("data == " + data);
      alert("result == " + data.result + ",targetFilePath == " + data.targetFilePath);
    },
    error:function(message){
      alert("调用ajax请求出错");
    }
  });
  
  // 后台接收数据
  Map<String,Object> resultMap = new HashMap<String,Object>();
  String result = "success";
  try {
    PDFUtil.fillTextToPDF(paramMap);
  }catch (DocumentException | IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace(); result = "failed";
  }finally {
    resultMap.put("result", result);
    resultMap.put("targetFilePath", ConfigInfo.getHost() + "/file/target.pdf");
 
 
  // 响应数据,为json,通过流传输数据
  String resultJson = mapper.writeValueAsString(resultMap);
  mapper.writeValue(response.getWriter(), resultJson); }

 

  9、关于js中的JSON对象和JSON字符串之间的相互转换:   
var jsonStr = '{ "name": "cxh", "sex": "man" }'; // JSON字符
  var jsonObject = { "name": "cxh", "sex": "man" }; // JSON对象
 
  // JSON对象转化为JSON字符
    // 方法1
    var jsonStr=jsonObject.toJSONString(); 
 
    // 方法2
    var jsonStr=JSON.stringify(jsonObject);
 
  // JSON字符转化为JSON对象
    // 方法一
    var jsonObject = eval('(' + jsonStr + ')'); // 如果obj本来就是一个JSON对象,那么使用eval函数转换后,哪怕是多次转换,还是JSON对象 
    // 方法二
    var jsonObject = jsonStr.parseJSON();// json对象使用parseJSON()函数处理后会有问题(抛出语法异常) 
    // 方法三
    var jsonObject = JSON.parse(jsonStr); 
    // 方法四
    $.parseJSON(jsonStr);
    console.log(jsonObj.name); // 输出cxh
    console.log(jsonObj.sex); // 输出man
 
  // 假设有以下JSON数据:
  var jsonStr = '{"name": "Tom", "age": 18}';
  // 使用parseJSON()方法解析JSON数据:
  var jsonObj = $.parseJSON(jsonStr);
  console.log(jsonObj.name); // 输出cxh
  console.log(jsonObj.sex); // 输出man

 

  10、jquery生成json数据以及解析json数据  
 // 1 定义返回的教材数据json对象数组
  var resultJson = [];
  // 2 获取到下拉框选中的数据 并放入json数组中
  var materialJson = [];
  $('#select-container select option:selected').each(function() {
    materialJson.push($(this).text());
  });
  materialJson.push($("#pageNumber").val());
 
  // 3 定语json对象中的数据
  var result = {
    "materialType": materialType,
    "type":type,
    "materialName": materialName,
    "id": id,
    "materialNumber": materialNumber,
    "pageNumber": pageNumber
  };
 
 
  // 4 将json对象放入json对象数组中
  resultJson.push(result);
 
  // 5 将json对象数组转为json格式字符串
  JSON.stringify(resultJson);
  如: 
    [{      
      "materialType": "自主研发教材",
      "type": "whiteBoard",
      "materialName": "二年级部编版课件(上册) 第七单元 (生字课件)20.雪孩子.pptx",
      "id": "",
      "materialNumber": "",
      "pageNumber": "22"
    }, {
      "materialType": "自主研发教材",
      "type": "whiteBoard",
      "materialName": "二年级部编版课件(上册) 第七单元 (生字课件)20.雪孩子.pptx",
      "id": "",
      "materialNumber": "",
      "pageNumber": "22"
    }]

 

   

标签:map,list,JSON,json,mapJson,var,com
From: https://www.cnblogs.com/xiaomo-swordsman/p/17474159.html

相关文章

  • 在linux中使用内存映射(mmap)操作文件
    1,打开或创建文件,得到文件描述符,2,将内存中的数据以一定的格式和顺序写入文件,或者将文件中的数据以一定的格式和顺序读入到内存;3,关闭文件描述符;下边是按照常规方式操作固定格式的文件的方法,包含读写两个示例;1.#include<stdlib.h>2.#include<stdio.h>3.#include<unistd.h>......
  • listeners和v-model
    <template> <divid="app">  <LoadingButton@click="handlesClick"></LoadingButton>  <ceShi2></ceShi2> </div></template><script>importLoadingButtonfrom'@/compone......
  • 大数据NiFi(十九):实时Json日志数据导入到Hive
    文章目录实时Json日志数据导入到Hive一、配置“TailFile”处理器1、创建“TailFile”处理器2、配置“PROPERTIES”二、配置“EvaluateJsonPath”处理器1、创建“EvaluateJsonPath”处理器2、配置“PROPERTIES”3、连接“TailFile”处理器和“EvaluateJsonPath”处理器三、配置“Rep......
  • Java中 List的遍历及三种遍历方法
    JavaList遍历方法及其效率对比packagecom.zbalpha.test;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;publicclassListTest{publicstaticvoidmain(Stringargs[]){List<Long>lists=newArrayList<Long&g......
  • Java常用的几种JSON解析工具
    一、Gson:Google开源的JSON解析库1.添加依赖<!--gson--><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId></dependency><!--lombok--><dependency><groupId>org.proje......
  • 通用mapping实现的SSM项目:SSM 框架:是 Spring + Spring MVC + MyBatis
    1.结合通用mapping实现的SSM项目:SSM框架:是Spring+SpringMVC+MyBatis的缩写mybatisgenerator:配置插件通用mapper:tk.mybatis2.MyBatis逆向工程组件是MyBatisGenerator,简称MBG,是专为MyBatis框架制定代码自动生成解决方案,MBG可以根据数据表结构快速生成对应的实体类......
  • List 接口及其常用方法
    List接口的特点List接口是Collection接口的子接口,其主要特点如下:List中元素有序,是按照元素的插入顺序进行排序的。每个元素都有一个与之关联的整数型索引(索引从0开始),可以根据索引来访问和操作元素,可以使用普通for循环遍历。List中可以包含重复的元素。publicclassLis......
  • JS中Map的遍历(转)
    转自:JS中Map的遍历1、forEach遍历constmap=newMap([['key1','v1'],['key2','v2'],['key3','v3']]);console.log(map);map.forEach((val,key)=>{console.log(val,key);//先输出value,再输出key})/**v1key......
  • 2023年6月11日,TreeSet,Comparable,HashMap
    1.Set1.TreeSetTreeSet1、存储Integer的元素,升序排列2、存储String的元素,字典排列TreeSet根据元素的不同类型使用不同的排序规则publicclasstest01{/***知识点:TreeSet*1、存储Integer的元素,升序排列*2、存储String的元素,字典排列*......
  • Java8新特性Stream之list转map及问题解决
    List集合转Map,用到的是Stream中Collectors的toMap方法:Collectors.toMap具体用法实例如下://声明一个List集合Listlist=newArrayList();list.add(newPerson("1001","小A"));list.add(newPerson("1002","小B"));list.add(......