JSON的String字符串与Java的List列表对象的相互转换


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

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

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

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

2.把List转换为json

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

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

/** 
   * @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字串,是根据客户端页面用户输入的信息生成的 

  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(); 
  } 

 


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3