• 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();
    }
  • 相关阅读:
    类图class的依赖关系
    ASP.NET MVC 5
    单例模式
    facebook .net sdk 应用
    跟我一起云计算(1)——storm
    C# 求精简用一行代码完成的多项判断 重复赋值
    语音播报实时天气
    滚动监听
    10277
    第十届蓝桥杯JavaB组省赛真题
  • 原文地址:https://www.cnblogs.com/sharpest/p/8378447.html
Copyright © 2020-2023  润新知