JAVAのjsonを解析する方法

anonymity
リリース: 2019-05-29 09:19:46
オリジナル
4142 人が閲覧しました

1. JSON とは

JSON は、データの保存と表現にプログラミング言語から完全に独立したテキスト形式を使用する軽量のデータ交換形式です。シンプルさと明確な階層構造により、JSON は理想的なデータ交換言語となります。読み取りと書き込みが簡単であるだけでなく、解析と生成も簡単で、ネットワーク伝送効率を効果的に向上させます。

JAVAのjsonを解析する方法

2. JSON 構文

(1) データは名前と値のペアで構成されます

(2) データはカンマで区切られます

(3) 中括弧はオブジェクトを保存します

(4) 角括弧は配列を保存します

3. Java で JSON を生成および解析する 4 つの方法 (簡単なデモ):

エンティティ クラス: JSON データとの間の変換に使用されます

public class Person {
    private String name;
    private String sex;
    private int age;
    public Person(String name, String sex, int age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public String getSex() {
        return sex;
    }
    public int getAge() {
        return age;
    }
    @Override
    public String toString() {
        return "Person{name='" + name + '\'' + ", sex='" + sex + '\'' + ", age=" + age + '}';
    }
}
ログイン後にコピー

(1) 従来の方法の使用:

エンティティ クラスから Json 文字列を生成します:

public Person getPerson(){
    return new Person("张三", "男", 25);
}
@Test
public void EntityToJson(){
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("name", getPerson().getName());
    jsonObject.put("sex", getPerson().getSex());
    jsonObject.put("age", getPerson().getAge());
    System.out.println(jsonObject.toString());
}
ログイン後にコピー

Json 文字列からエンティティ クラスを生成:

@Test
public void JsonToEntity(){
    String jsonString = "{\"sex\":\"男\",\"name\":\"张三\",\"age\":25}";
    JSONObject jsonObject = new JSONObject(jsonString);
    Person person = new Person(jsonObject.get("name").toString(), jsonObject.get("sex").toString(), Integer.valueOf(jsonObject.get("age").toString()));
    System.out.println(person.toString());
}
ログイン後にコピー

(2) Jackson メソッドを使用:

エンティティ クラスから Json 文字列を生成:

@Test
public void EntityToJson() throws IOException {
    Person person = new Person("张三", "男", 25);
    ObjectMapper objectMapper = new ObjectMapper();
    String jsonString = objectMapper.writeValueAsString(person);
    System.out.println(jsonString);
}
ログイン後にコピー

Json 文字列からエンティティ クラスを生成:

@Test
public void JsonToEntity() throws IOException {
    ObjectMapper objectMapper = new ObjectMapper();
    String jsonString = "{\"name\":\"张三\",\"sex\":\"男\",\"age\":25}";
    Person person = objectMapper.readValue(jsonString, Person.class);
    System.out.println(person);
}
ログイン後にコピー

(3) GSON メソッドを使用:

エンティティ クラスから Json 文字列を生成:

@Test
public void EntityToJson(){
    Person person = new Person("张三", "男", 25);
    Gson gson = new Gson();
    String jsonString = gson.toJson(person);
    System.out.println(jsonString);
}
ログイン後にコピー

Json 文字列からエンティティ クラスを生成する:

@Test
public void JsonToEntity(){
    String jsonString = "{\"name\":\"张三\",\"sex\":\"男\",\"age\":25}";
    Gson gson = new Gson();
    Person person = gson.fromJson(jsonString, Person.class);
    System.out.println(person.toString());
}
ログイン後にコピー

(4) FastJSON メソッドを使用する

エンティティ クラスから Json 文字列を生成する:

@Test
public void EntityToJson(){
    Person person = new Person("张三", "男", 25);
    Object jsonString = JSON.toJSON(person);
    System.out.println(jsonString.toString());
}
ログイン後にコピー

Generateentity class from Json 文字列:

@Test
public void JsonToEntity(){
    String jsonString = "{\"name\":\"张三\",\"sex\":\"男\",\"age\":25}";
    Person person = JSON.parseObject(jsonString, Person.class);
    System.out.println(person.toString());
}
ログイン後にコピー

以上がJAVAのjsonを解析する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート