简体   繁体   English

解析多个JSON字符串

[英]Parsing multiple JSON strings

I would like to thank all the users in this community for helping me get as far as I am in my project today. 我要感谢这个社区中的所有用户,帮助我在今天的项目中取得了长足的进步。

I now need your help once again. 我现在再次需要您的帮助。 So far, I am able to establish a connection in my project from this JSON link (REMOVED FOR PRIVACY CONCERNS) 到目前为止,我已经可以通过此JSON链接在我的项目中建立连接(针对隐私考虑已删除)

The problem is I am only able to parse one string, (firstName) 问题是我只能解析一个字符串,(名字)

Here is my code: 这是我的代码:

public class JSONActivity extends Activity { 
static TextView http; 
HttpClient client; 
JSONObject json; 

    final static String URL = "REMOVED FOR PRIVACY CONCERNS

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        http = (TextView) findViewById(R.id.http); 
        client = new DefaultHttpClient(); 
        new Read().execute("firstName"); 

    } 

    public JSONObject getpw(String password) throws ClientProtocolException, 
            IOException, JSONException { 
        StringBuilder url = new StringBuilder(URL); 
        url.append(password); 

        HttpGet get = new HttpGet(url.toString()); 
        HttpResponse r = client.execute(get); 
        int status = r.getStatusLine().getStatusCode(); 
        if (status == 200) { 
            HttpEntity e = r.getEntity(); 
            String data = EntityUtils.toString(e); 
            JSONObject getname = new JSONObject(data); 

            return getname; 
        } else { 
            Toast.makeText(JSONActivity.this, "error", Toast.LENGTH_SHORT); 
            return null; 
        } 
    } 

    public class Read extends AsyncTask<String, Integer, String> { 

        @Override 
        protected String doInBackground(String... arg0) { 
            // TODO Auto-generated method stub 
            try { 
                json = getpw("trustme"); 
                return json.getString("firstName"); 
            } catch (ClientProtocolException e) { 
                // TODO Auto-generated catch block 
                e.printStackTrace(); 
            } catch (IOException e) { 
                // TODO Auto-generated catch block 
                e.printStackTrace(); 
            } catch (JSONException e) { 
                // TODO Auto-generated catch block 
                e.printStackTrace(); 
            } 

            return null; 
        } 

        @Override 
        protected void onPostExecute(String result) { 
            // TODO Auto-generated method stub 
            http.setText(result); 
        } 
    } 
} 

My question is, how can I parse multiple strings rather than just "firstName"? 我的问题是,我该如何解析多个字符串而不只是“ firstName”?

You can get it all by doing the following: 您可以通过执行以下操作获得全部信息:

String firstname = json.getString("firstName");
String lastname = json.getString("lastName");
int checkedIn = json.getInt("checkedIn");
int updated = json.getInt("checkedindatetime");

JSONObject address = json.getJSONObject("address");
String streetaddress = address.getString("streetAddress");
String city = address.getString("city");
etc...

JSONArray phoneNumbers = json.getJSONArray("phoneNumber");
String type = phoneNumbers.getJSONObject(0).getString("type");
etc...

Hope this helps. 希望这可以帮助。

A good resource for looking at json, is this validator . 这个验证器是查看json的一个很好的资源。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM