从json串中获取某个值_JSON解析永不眠

  • Post author:
  • Post category:其他


ed0d9c4509bdf80fad8f1817c96c9fcb.png

一、前言

本文一共介绍JSON两种解析方式、JSON合法性验证的一个网站、JSONArray中删除元素、JSONObject中删除键值对,开发中基本上够用了。

二、JSON解析与JSON合法性验证

2.1 使用org.json解析

一共包括org.json.JSONArray、org.json.JSONObject两个类,看一个同时包含JSONObject、JSONArray的。

代码:

package com.csdn.example.JSONparsePackage1;

import org.json.JSONArray;
import org.json.JSONObject;

/**
 * Created by maoqizhi on 2020/7/22.
 */
public class JSONParser3 {
    public static void main(String[] args) {
        //待解析的JSON字符串
        String JSONString = "{'name':'卢本伟','age':24,'Hero':{'name':'Fizz','Position':'Mid','charactor':'killer'},'nickNames':['五五开','芦苇','white'],'Honors':[{'year':2011,'name':'TGA总决赛冠军'},{'year':2013,'name':'S3全球总决赛中国区冠军'},{'year':2013,'name':'S3全球总决赛亚军'}]}";

        try {

            JSONObject JSON = new JSONObject(JSONString);      // 第一步,将string变为JSON  这里最外层是{  所以是new JSONObject

        /*
         * 普通元素,getXxx()直接获取
         */
            String name = JSON.getString("name");
            int age = JSON.getInt("age");
            System.out.println("姓名:"+name);
            System.out.println("年龄:"+age);
            System.out.println("————————————————————————————————");

        /*
         * 属性大括号包括,先获取JSONObject对象  getJSONObject()  然后进一步getXxx()解析属性
         */
            JSONObject hero = JSON.getJSONObject("Hero");
            String hero_name = hero.getString("name");
            String hero_position = hero.getString("Position");
            String hero_charactor = hero.getString("charactor");
            System.out.println("擅长英雄:");
            System.out.println("英雄名:"+hero_name);
            System.out.println("位置:"+hero_position);
            System.out.println("英雄定位:"+hero_charactor);
            System.out.println("————————————————————————————————");

        /*
         * 属性被中括号包括,获取JSONArray对象,getJSONArray  ,然后进一步遍历即可
         */
            System.out.println("外号:");
            JSONArray nickNames =