1

これが尋ねられた可能性があることは知っていますが、具体的な答えを得ることができませんでした。私はjson文字列を持っています:

GraphObject{graphObjectClass=GraphPlace, state={"id":"268367713308665","category":"School","location":{"state":"","zip":"","longitude":32.631482614136,"latitude":0.24519375867929,"country":"Uganda","city":"Kampala","street":"PO BOX 28493"},"category_list":[{"id":"365182493518892","name":"School"}],"name":"Little Wonders Montessori"}}
GraphObject{graphObjectClass=GraphPlace, state={"id":"142442605900768","category":"Education","location":{"state":"","zip":"","longitude":32.606752647018,"latitude":0.28746491511647,"country":"Uganda","city":"Kampala","street":"Heritage\/ Kiwafu Stage, Wheeling Zone, Gaba Road, Kansanga"},"category_list":[{"id":"151676848220295","name":"Education"}],"name":"Wisdomgate Pre-School, Kansanga."}}

近くの場所を照会するときに Facebook から取得しているもので、緯度、経度、カテゴリ、および名前を抽出したいと考えています。これが試していることです

public void onCompleted(List<GraphPlace> places, Response response) {
    //Toast.makeText(getActivity(), (CharSequence) places.listIterator(), Toast.LENGTH_LONG).show();
    ListIterator<GraphPlace> x =    places.listIterator();
    while(x.hasNext()){
        String f = x.next().toString();
        Toast.makeText(getActivity(), f, Toast.LENGTH_LONG).show();
        mytext.setText(f);
        try {
            JSONObject json = new JSONObject(f);
            JSONArray array = json.getJSONArray( "GraphPlace" );
            Toast.makeText(getActivity(), array.length(), Toast.LENGTH_LONG).show();
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}   
});
request.executeAsync(); 

しかしなかなかエントリーポイントが取れず、いくら頑張っても何も出てこないのでよろしくお願いします。

4

1 に答える 1

1

JSON 文字列が次のようになっている場合:

{"id":"268367713308665","category":"School","location":{"state":"","zip":"","longitude":32.631482614136,"latitude":0.24519375867929,"country":"Uganda","city":"Kampala","street":"PO BOX 28493"},"category_list":[{"id":"365182493518892","name":"School"}],"name":"Little Wonders Montessori"}}

緯度と経度を取得するには、次のようにします。

        JSONObject json = new JSONObject(yourJSONVariableHere);
        JSONObject location = json.getJSONObject( "Location" );
        String lat = location.getString("latitude");
        String long = location.getString("longitude");

latおよび変数については、JSON の値に応じてorlongを割り当てることができます。変数の型を変更する場合は、それぞれの変数値に対してorを実行します。intlonggetInt()getLong

他に覚えておくべきことは、latandを保持するネストされたオブジェクトがあるlongため、それを取得してから解析する必要があるということです。ネストされた配列やその他のオブジェクトがある場合も同様です。現在、 を使用してgetJSONArrayいますが、JSON の配列には[array, array]、または角括弧があり、JSON オブジェクトには{object, object}中括弧があります。

お役に立てれば。

于 2013-09-24T03:45:30.733 に答える