検索
ホームページJava&#&チュートリアルJSON-lib パッケージによる json 構造とメソッドの使用

JSON-lib パッケージによる json 構造とメソッドの使用

Jun 27, 2017 am 10:34 AM
javascriptjsonjsonarrayjsonobject解析する

JSON-lib パッケージ (2 つの最も重要なクラスは JSONObject と JSONArray) により、json の構築といくつかの基本メソッドの使用が完了します。

2 つの違い:

① JSONObject によって構築される文字列はキーと値のペア (key:value) の形式であり、複数のキーと値のペアは英語のカンマで接続されます。

② JSONArray によって構築される文字列は次のとおりです。配列 ([array1, array2 ,...]) の形式で。

使用する必要があるパッケージのダウンロード リンク:

1. JSONObject の使用。

(1) JSON 文字列の 2 つの構築方法:

①Java オブジェクトを使用する、②Map コレクションを使用する。

ステップ 1: まず新しい Java プロジェクトを作成し、依存関係パッケージをインポートします。

ステップ 2: 2 つのテスト クラスを作成します:

Teacher.java

package com.snnu.json;import java.util.List;public class Teacher {private String name;private String sex;private int age;private List<transport> myTool;    
    public Teacher(){
        
    }    public Teacher(String name,String sex,int age,List<transport> myTool){this.name = name;this.sex = sex;this.age = age;this.myTool = myTool;
    }public String getName() {return name;
    }public void setName(String name) {this.name = name;
    }public String getSex() {return sex;
    }public void setSex(String sex) {this.sex = sex;
    }public int getAge() {return age;
    }public void setAge(int age) {this.age = age;
    }public List<transport> getMyTool() {return myTool;
    }public void setMyTool(List<transport> myTool) {this.myTool = myTool;
    }

}</transport></transport></transport></transport>

Transport.java

package com.snnu.json;public class Transport {    private String name;private float price;    public Transport(){
        
    }    public Transport(String name,float price){this.name = name;this.price = price;
    }    
    public String getName() {return name;
    }public void setName(String name) {this.name = name;
    }public float getPrice() {return price;
    }public void setPrice(float price) {this.price = price;
    }
    
    
    
    
}

ステップ 3: メインを作成します。 method

方法 1:

package com.snnu.json;import java.util.ArrayList;import java.util.List;import net.sf.json.JSONObject;public class Demo_creajsonFromObject {// 利用java对象生成json字符串public JSONObject createJsonFromObject(Object object) {return JSONObject.fromObject(object);
    }public static void main(String[] args) {// TODO Auto-generated method stubDemo_creajsonFromObject demo = new Demo_creajsonFromObject();

        Teacher t = new Teacher();
        t.setName("张三");
        t.setSex("男");
        t.setAge(21);

        Transport bike = new Transport("自行车", 267);
        Transport motorcycle = new Transport("摩托车", 3267);
        Transport car = new Transport("小汽车", 100000);
        List<transport> tools = new ArrayList<transport>();
        tools.add(bike);
        tools.add(motorcycle);
        tools.add(car);

        t.setMyTool(tools);

        JSONObject ob = demo.createJsonFromObject(t);

        System.out.println(ob);

    }

}</transport></transport>

生成される json 文字列は次のとおりです:

{
    "age": 21,
    "myTool": [
        {
            "name": "自行车",
            "price": 267
        },
        {
            "name": "摩托车",
            "price": 3267
        },
        {
            "name": "小汽车",
            "price": 100000
        }
    ],
    "name": "张三",
    "sex": "男"
}

方法 2:

package com.snnu.json;import java.util.HashMap;import java.util.Map;import net.sf.json.JSONObject;public class Demo_creajsonFromMap {//使用map集合生成json字符串public JSONObject createJsonFromMap(Map<string> map){
        JSONObject jsob=new JSONObject();
        jsob.putAll(map);return jsob;
    }    
    public static void main(String[] args) {// TODO Auto-generated method stubDemo_creajsonFromMap demo=new Demo_creajsonFromMap();
        
        Map<string> mmap=new HashMap<string>();
        mmap.put("name", "张三");
        mmap.put("sex", "男");
        mmap.put("age", "21");
        
        JSONObject ob=demo.createJsonFromMap(mmap);
        System.out.println(ob);
        
    }

}</string></string></string>

生成される json 文字列は次のとおりです:

{"sex": "男","name": "张三","age": "21"}
(2) JSONオブジェクトの例一般的に使用される 3 つの方法のうち。

package com.snnu.json;import java.util.ArrayList;import java.util.List;import net.sf.json.JSONObject;public class MethodTest {//put方法:在一个json中插入一个节点,若该节点已存在,则该节点的值将会被替换public JSONObject testPut(){
        JSONObject jo1=new JSONObject();
        
        jo1.put("a", "1");
        jo1.put("b", "2");
        jo1.put("c", "3");
        
        Transport bike=new Transport("bike",200);
        jo1.put("d", bike);
        
        List<string> list=new ArrayList<string>();
        list.add("one");
        list.add("two");
        list.add("three");
        jo1.put("e", list);
        
        jo1.put("a", "100");        return jo1;
    }    
    //accumulate方法:可以在同一个key下累积值,若key对应的value有值,则以数组形式累积;否则相当于put方法public JSONObject testAccumulate(){
        JSONObject jo2=new JSONObject();
        
        jo2.put("a", "1");
        jo2.put("b", "2");
        jo2.put("c", "3");
        jo2.accumulate("c", "300");
        
        Transport bike=new Transport("bike",200);
        jo2.accumulate("c", bike);
        
        List<string> list=new ArrayList<string>();
        list.add("one");
        list.add("two");
        list.add("three");
        jo2.accumulate("c", list);
        
        jo2.put("d", "4");        return jo2;
    }    
    //与put方法基本一致public JSONObject testElement(){
        JSONObject jo3=new JSONObject();
        
        jo3.put("a", "1");
        jo3.put("b", "2");
        jo3.put("c", "3");
        jo3.element("c", "300");        
        return jo3;
    }    
    
    public static void main(String[] args) {// TODO Auto-generated method stubMethodTest test=new MethodTest();
        System.out.println("JSONObject的put方法使用"+test.testPut());
        System.out.println("JSONObject的accumulate方法使用"+test.testAccumulate());
        System.out.println("JSONObject的element方法使用"+test.testElement());
        
    }

}</string></string></string></string>

①put メソッドは、JSON 文字列の整形結果を次のように出力します:

{"a": "100","b": "2","c": "3","d": {"name": "bike","price": 200},"e": ["one","two","three"]
}
②accumulate メソッドは、JSON 文字列の整形結果を次のように出力します:

{"a": "1","b": "2","c": ["3","300",
        {"name": "bike","price": 200},
        ["one","two","three"]
    ],"d": "4"}
③element メソッドは、JSON 文字列の整形結果を次のように出力します:

{"a": "1","b": "2","c": "300"}
2. JSONArray の使用

(1) 基本的な使用法:

package com.snnu.json;import net.sf.json.JSONArray;import net.sf.json.JSONObject;public class demo_JsonArray {    
    public JSONObject testJsonArray(){
        JSONObject ob=new JSONObject();
        
        JSONArray ja=new JSONArray();
        ja.add("1");
        ja.add("2");
        ja.add("3");
        ja.add("4");
        ja.add("5");
        
        ob.put("array", ja);        return ob;
    }    
    public static void main(String[] args) {// TODO Auto-generated method stubdemo_JsonArray djs=new demo_JsonArray();
        System.out.println("JSONArray的使用:"+djs.testJsonArray());
        
    }

}
出力文字列のフォーマット:

{"array": ["1","2","3","4","5"]
}
3. 包括的な例

package com.snnu.json;import net.sf.json.JSONArray;import net.sf.json.JSONObject;public class demo_testJson {    
    
    public JSONObject test(){
        
        JSONObject jo=new JSONObject();
        jo.put("name", "张三");
        jo.put("sex","f");
        jo.put("age",21);
        
        Transport bike=new Transport("bike",250);
        jo.put("extra", bike);
        Transport car=new Transport("car",10000);
        jo.accumulate("extra", car);
        Transport motor=new Transport("motor",3000);
        jo.accumulate("extra", motor);
        
        System.out.println(jo);        //根据key值(为extra)取对应的valueString value=jo.getString("extra");
        System.out.println(value);        //将字符串转化为JSONArrayJSONArray jsar=JSONArray.fromObject(value);
        String str_2=String.valueOf(jsar.get(1));
        System.out.println(str_2);        //将字符串转化为JSONObjectJSONObject jsob=JSONObject.fromObject(str_2);
        System.out.println("名称:"+jsob.getString("name"));
        System.out.println("价钱:"+jsob.getString("price"));
        
        System.out.println("-------------------------------分界线-------------------------------------------");        return jo;
        
    }public static void main(String[] args) {// TODO Auto-generated method stubdemo_testJson dtj=new demo_testJson();
        System.out.println("综合测试:"+dtj.test());
    }

}
出力結果は次のとおりです:

rrリー

以上がJSON-lib パッケージによる json 構造とメソッドの使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?Mar 17, 2025 pm 05:46 PM

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?Mar 17, 2025 pm 05:45 PM

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?Mar 17, 2025 pm 05:44 PM

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?Mar 17, 2025 pm 05:43 PM

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Mar 17, 2025 pm 05:35 PM

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター