java JSON 解析

使用org提供的接口解析json格式

注意:JSONObject和JSONArray不可混淆,

Json 内容,可以使用在线json格式解析如下内容:https://www.json.cn/

{"word_tag": [6, 2, 1], "word_name": "tall", "synonym": [{"part_name": "adj.", "means": [{"cis": ["excessive", "magnified", "exaggerated", "overstated", "unreasonable", "extreme"], "word_mean": "夸张的;过分的"}, {"cis": ["towering", "lofty", "high"], "word_mean": "高的"}]}, {"part_name": "", "means": [{"cis": ["lengthy", "excessive", "exaggerated", "strapping", "long", "big", "short", "extreme", "high"], "word_mean": "其他释义"}]}], "sentence": [{"ttsUrl": "http://res-tts.iciba.com/tts_new_dj/5/0/0/500036feabfd563ab4853513d17d53fb.mp3", "en": "a tall angular woman", "cn": "又高又瘦的女人"}, {"ttsUrl": "http://res-tts.iciba.com/tts_new_dj/9/3/3/933c0fbc41b5d3a7ad495d1fd2994b5a.mp3", "en": "a tall, luxuriantly bearded man", "cn": "留有浓密胡须的高个子男人"}], "exchange": {"word_noun": ["tallness"], "word_third": [], "word_done": [], "word_pl": [], "word_est": [], "word_adv": [], "word_verb": [], "word_adj": [], "word_conn": [], "word_prep": [], "word_ing": [], "word_er": [], "word_past": []}, "symbols": {"ph_en_mp3": "http://res.iciba.com/resource/amp3/oxford/0/58/73/587363708c5538732338b232b12dc91a.mp3", "ph_en": "/tɔ:l/", "ph_am": "/tɔl/", "ph_am_mp3": "http://res.iciba.com/resource/amp3/1/0/6c/e1/6ce1a133fa63d64306c463bdd3122598.mp3"}, "parts": {"mean": ["adj.身材高的,高大的,(数量)大的,(俚)过分的,夸张的"], "simpleMeans": ["身材高的,高大的,(数量)大的,(俚)过分的,夸张的"]}, "antonym": [{"part_name": "adj.", "means": [{"cis": ["short"], "word_mean": "身材高的;高大的"}]}]}

具体代码:

import org.json.simple.parser.ParseException;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
public class JSONparse {
  public static void main(String[] args)  {

    String result="{"word_tag": [6, 2, 1], "word_name": "tall", "synonym": [{"part_name": "adj.", "means": [{"cis": ["excessive", "magnified", "exaggerated", "overstated", "unreasonable", "extreme"], "word_mean": "夸张的;过分的"}, {"cis": ["towering", "lofty", "high"], "word_mean": "高的"}]}, {"part_name": "", "means": [{"cis": ["lengthy", "excessive", "exaggerated", "strapping", "long", "big", "short", "extreme", "high"], "word_mean": "其他释义"}]}], "sentence": [{"ttsUrl": "http://res-tts.iciba.com/tts_new_dj/5/0/0/500036feabfd563ab4853513d17d53fb.mp3", "en": "a tall angular woman", "cn": "又高又瘦的女人"}, {"ttsUrl": "http://res-tts.iciba.com/tts_new_dj/9/3/3/933c0fbc41b5d3a7ad495d1fd2994b5a.mp3", "en": "a tall, luxuriantly bearded man", "cn": "留有浓密胡须的高个子男人"}], "exchange": {"word_noun": ["tallness"], "word_third": [], "word_done": [], "word_pl": [], "word_est": [], "word_adv": [], "word_verb": [], "word_adj": [], "word_conn": [], "word_prep": [], "word_ing": [], "word_er": [], "word_past": []}, "symbols": {"ph_en_mp3": "http://res.iciba.com/resource/amp3/oxford/0/58/73/587363708c5538732338b232b12dc91a.mp3", "ph_en": "/tɔ:l/", "ph_am": "/tɔl/", "ph_am_mp3": "http://res.iciba.com/resource/amp3/1/0/6c/e1/6ce1a133fa63d64306c463bdd3122598.mp3"}, "parts": {"mean": ["adj.身材高的,高大的,(数量)大的,(俚)过分的,夸张的"], "simpleMeans": ["身材高的,高大的,(数量)大的,(俚)过分的,夸张的"]}, "antonym": [{"part_name": "adj.", "means": [{"cis": ["short"], "word_mean": "身材高的;高大的"}]}]}";
    System.out.println(result);
    try {
      JSONObject jsonTest = (JSONObject) (new JSONParser().parse(result));
      System.out.println(jsonTest.toString());//转化为字符串
      String wordName = (String) jsonTest.get("word_name");//得到word_name对应的value

      JSONArray antonymArray = (JSONArray) jsonTest.get("antonym");
      System.out.println(antonymArray.toString());
      JSONObject antonymObject=(JSONObject)antonymArray.get(0);
      JSONArray meansArray= (JSONArray) antonymObject.get("means");
      
      //synonymArray是JSONArray的对象,不可用JSONObject
      //JSONObject synonymArray=(JSONObject)jsonTest.get("synonym");
      System.out.println("*****" + "end" + "*****");
    } catch (ParseException e) {
      e.printStackTrace();
    }
  }

}
原文地址:https://www.cnblogs.com/AntonioSu/p/13476539.html