1

名前がなく、配列内の ( int ) 位置が毎週かそこら変化するsJSONArrayを含むa を解析したいと考えています。特定の属性 を解析しようとしましたが、パーサーは配列内の最後のオブジェクトのみを返します。JSONObjectindexObject

解析したいオブジェクトに到達したときにループを停止し、さらに解析するためにオブジェクトの int インデックスを決定するにはどうすればよいですか。

try {
        JSONArray jArray = JSONthing.getJSONfromURL("http://something.com");
        String attributeiwant = "abc";
        for (int i = 0; i < jArray.length(); i++) {
            JSONObject alpha = jArray.getJSONObject(i);
            String attributeparsed = alpha.getString("widget");
            if (attributeparsed == attributeiwant) {
                //determine int index of object, so i can parse other attributes
                //from same object          

            }
        }
        } catch (Exception e) {
        Log.e("log_tag", "Error parsing data "+ e.toString());
        }
4

2 に答える 2

2

==の代わりにString.equalsを使用して文字列を比較します

try {
        JSONArray jArray = JSONthing.getJSONfromURL("http://something.com");
        String attributeiwant = "abc";
        for (int i = 0; i < jArray.length(); i++) {
            JSONObject alpha = jArray.getJSONObject(i);
            String attributeparsed = alpha.getString("widget");
            if (attributeparsed.equals(attributeiwant)) {
                //determine int index of object, so i can parse other attributes
                //from same object          
                // Get data from JsonObject
                break;
            }
        }
        } catch (Exception e) {
        Log.e("log_tag", "Error parsing data "+ e.toString());
        }
于 2012-07-31T04:42:12.913 に答える
1

ブレークを使用します。ループを中断するステートメントは、コードを次のように変更します。

int i = 0;

try {
        JSONArray jArray = JSONthing.getJSONfromURL("http://something.com");
        String attributeiwant = "abc";
        for (; i < jArray.length(); i++) {
            JSONObject alpha = jArray.getJSONObject(i);
            String attributeparsed = alpha.getString("widget");
            if (attributeparsed.equals(attributeiwant)) {
                //determine int index of object, so i can parse other attributes
                //from same object          
                break;
            }
        }
        } catch (Exception e) {
        Log.e("log_tag", "Error parsing data "+ e.toString());
        }

if(i<jArray.length())
{
   //item found, use i as index of object.
}
else
   //item not found.
于 2012-07-31T04:41:55.533 に答える