0

いいえ。形式の配列/リスト項目の: (私は Java を使用しています)

{"scout": "webdriver", "short_version": "4.3", "long_name": "iPad", "api_name": "ipad", 

"long_version": "4.3.", "automation_backend": "webdriver", "os": "Mac 10.6"}

私だけが必要です: "os": "Mac 10.6" list/json を使用してそれをフィルタリングする方法は?

私の配列は次のように取得されます:

String[] str = platformJsonContent.split("}");

今私はリストを得ました:

List<String> platforms = new ArrayList<String>();

        for(int i=0; i<size; i++){
            platforms.add(str[i]);
        }

// フィルタはここにある必要があります

4

4 に答える 4

4

おそらく、JSONObject などを使用して読み取る方がよいでしょう。

JSONObject platforms = new JSONOBject(platformJsonContent);

platforms.get("os");
#=> "Mac 10.6"

ここで詳細なドキュメントを参照してください: http://json.org/javadoc/org/json/JSONObject.html

.getJSONArray特に配列として必要な場合は、解析後に JSONObject のメソッドを使用して JSONObject から取得できる JSONArray を使用することをお勧めします。

http://json.org/javadoc/org/json/JSONArray.html

JSON Java パッケージ ( http://www.json.org/java/json.org )をダウンロードして参照する必要があります。次に、任意のビルド システムで参照をセットアップします。最終的なコードは次のようになります。

import org.json.JSONObject;
import org.json.JSONException;

public class Test {
    public static void main(String[] args) {
        try {
            String platformJsonContent = "{\"scout\": \"webdriver\", \"short_version\": \"4.3\", \"long_name\": \"iPad\", \"api_name\": \"ipad\", \"long_version\": \"4.3.\", \"automation_backend\": \"webdriver\", \"os\": \"Mac 10.6\"}";

            JSONObject platforms = new JSONObject(platformJsonContent);

            System.out.println(platforms.get("os"));
        } catch(JSONException ex) {
            // do something...
        }
    }
}

これは実行され、「Mac 10.6」を出力します

于 2013-09-19T09:39:12.867 に答える
0

Boon は、2014 年 3 月頃の JVM で最速の JSON パーサーを備えており、スライス表記 lib を備えています。

そう.....

この JSON を考えると:

    String json = "{\"scout\": \"webdriver\", \"short_version\": \"4.3\", \"long_name\": \"iPad\", \"api_name\": \"ipad\", \n" +
            "\n" +
            "\"long_version\": \"4.3.\", \"automation_backend\": \"webdriver\", \"os\": \"Mac 10.6\"}";

次のように「フィルタリング」できます。

    System.out.println( atIndex( fromJson(json), "os" ) ); //one line of code

出力:

Mac 10.6

Boon について詳しくは、http : //www.dzone.com/links/1091051.htmlをご覧ください。 beans-json-and.html

Boon を使用すると、JSON を解析し、Java オブジェクトを JSON にシリアライズし、JSON を依存関係に挿入し、JSON をメソッド呼び出しにマーシャリングし、JSON をコンストラクター呼び出しにマーシャリングし、インデックス付き JSON を検索し、JSON を実際にフィルタリングし、JSON を並べ替えることができます。JSON を使ってやりたいことを思いついたら、Boon はおそらくそれを実行します。

https://github.com/RichardHightower/boon

(一瞬…フォレスト・ガンプのワンシーンをチャネリングしているように見えました。エビを揚げたり、エビを焼いたり、エビを蒸したりできます。エビのガンボがあり、そして....)

于 2014-03-21T08:38:46.907 に答える
0

ライブラリを使用しないことにした場合、「os」を取得する方法の 1 つを次に示します。

//Assuming your jsonString is like this - "\"long_version\": \"4.3.\", \"automation_backend\": \"webdriver\", \"os\": \"Mac 10.6\""
Map<String, String> pairs = getJsonMap(jsonString);
pairs.get("os")

getJsonMap() を実行する方法は次のとおりです。

    private Map<String,String> getJsonMap(String jsonString){
        String[] eachPair = jsonString.replaceAll("\"", "").split(",");
        Map<String,String> pairs = new HashMap<String,String>();
        for(String pair: eachPair) {
            pairs.put(pair.substring(0, pair.indexOf(":")).trim(), pair.substring(pair.indexOf(":")+1));
        }
        return pairs;
    }

Java の JSON サポートを検討することを強くお勧めします。

于 2013-09-19T10:24:22.923 に答える
0

JEE7 を使用している場合は、http: //docs.oracle.com/javaee/7/tutorial/doc/jsonp.htm をご覧ください。

于 2013-09-19T09:51:23.363 に答える