zoukankan      html  css  js  c++  java
  • Java中JSON字符串与java对象的互换实例详解

    转自:https://blog.csdn.net/aa23252658787/article/details/53380403

    在前端:
    1.如果json是List对象转换的,可以直接遍历json,读取数据。
    2.如果是需要把前端的List对象转换为json传到后台,param是ajax的参数,那么转换如下所示:

    1
    2
    3
    var jsonStr = JSON.stringify(list);
    var param= {};
    param.jsonStr=jsonStr;

    在后台:
    1.把String转换为List(str转换为list)

    1
    2
    3
    List<T> list = new ArrayList<T>();
    JSONArray jsonArray = JSONArray.fromObject(str);//把String转换为json
    list = JSONArray.toList(jsonArray,t);//这里的t是Class<T>

    2.把List转换为json

    1
    2
    JSONArray json = JSONArray.fromObject(object);
    String str = json.toString();//把json转换为String

    eg:
    1. 根据页面用户输入的信息形成 Answer 对象的List 

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    /**
      * @param answers
      * @param question_ids
      * @param types
      * @return
      */
     private List<Answer> toAnswerList(String[] studenAnswers, int[] question_ids,
       int[] types,int[] scores) {
      List<Answer> answerList = new ArrayList<Answer>();
        
      if(studenAnswers!=null && question_ids!= null && types!= null&& scores!= null){
       for (int i = 0; i < studenAnswers.length; i++) {
          
        Answer answer = new Answer();
        String studenAnswer = studenAnswers[i];
        int type = types[i];
        int question_id = question_ids[i];
        int score = scores[i];
        
          
        answer.setQuestion_id(question_id);
        answer.setScore(score);
        answer.setStudenAnswer(studenAnswer);
        answer.setType(type);
          
        answerList.add(answer);
       }
      }
      return answerList;
     }
      
     /**
      * 将一个json字串转为list
      * @param props
      * @return
      */
     public static List<Answer> converAnswerFormString(String answer){
      if (answer == null || answer.equals(""))
       return new ArrayList();
      
      JSONArray jsonArray = JSONArray.fromObject(answer);
      List<Answer> list = (List) JSONArray.toCollection(jsonArray,
        Answer.class);
        
      return list;
     }

    2. 将一个 Answer 对象的List 生成Json字串,是根据客户端页面用户输入的信息生成的 

    1
    2
    3
    4
    5
    6
    7
    8
    public String getAnswerString(String[] studenAnswers, int[] question_ids,
      int[] types,int[] scores) {
     List list = toAnswerList(studenAnswers, question_ids,
        types, scores);
     JSONArray jsonarray = JSONArray.fromObject(list);
     
     return jsonarray.toString();
    }
  • 相关阅读:
    Java连接数据库 #02# JDBC经典套路
    Eloquent JavaScript #03# functions
    Java笔记 #04# 类的初始化顺序补充
    Java笔记 #03# HtmlUnit爬虫
    Google's Machine Learning Crash Course #04# First Steps with TensorFlow
    IntelliJ IDEA. Debug模式
    python实用笔记,加快编程速度,lamdba,三元运算,open.
    开源项目管理平台*redmine*的架设
    MYSQL双主故障解决实例。
    LVS-DR工作原理
  • 原文地址:https://www.cnblogs.com/sharpest/p/8378447.html
Copyright © 2011-2022 走看看