1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

String innnerhalb eines Strings extrahieren

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von sem_thesis, 03.05.2011.

  1. sem_thesis, 03.05.2011 #1
    sem_thesis

    sem_thesis Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    0
    Registriert seit:
    06.03.2011
    Phone:
    Nexus One
    Hallo zusammen!


    Ich bin gerade das Facebook Graph API am Durchwühlen.
    Dabei habe ich versucht die Informationen von den WallPosts (Feed) herauszusuchen.

    Unter dem folgenden Link ist die verfügbare Information aufgelistet:
    https://developers.facebook.com/docs/reference/api/
    Klick auf Profile Feed (Wall) --> dann erscheint -->


    HTML:
    {
       "data": [
          {
             "id": "506438",
             "from": {
                "name": "asdfasfd",
                "id": "5063"
             },
             "message": "..",
    ...
             "created_time": "2011-04-25T10:50:46+0000",
             "updated_time": "2011-04-25T14:40:31+0000",
             "likes": {
                "data": [
                   {
                      "name": "hjhki",
                      "id": "746690300"
                   }
                ],
                "count": 1
             },
             "comments": {
                "data": [
                   {
                      "id": "506",
                      "from": {
                         "name": "hjkhkj",
                         "id": "7980"
                      },
                      "message": "klj",
                      "created_time": "2011-04-25T11:38:24+0000"
                   },
                   {
                      "id": "506438439_144634898938747_1084274",
                      "from": {
                         "name": "hjlh",
                         "id": "506438439"
                      },
                      "message": "hjlk",
                      "created_time": "2011-04-25T14:40:31+0000"
                   }
                ],
                "count": 2
             }
    ....
    ...
          },
    
    Jetzt möchte ich Daten wie:
    - Wallpost ID
    - Created_Time
    - Updated_Time
    - From info
    - Comment info
    - Likes info
    usw. auslesen


    Ok, jetzt um die ID anzeigen zu lassen, habe ich geschrieben:
    Code:
    JSONObject wallpost = d.getJSONObject(i);
    FbWallPost newWallPost = new FbWallPost(wallpost.getString("id")
    
    TextView view = new TextView(getApplicationContext());
    view.setText(wallpost.getId())
    
    Das hat perfekt geklappt.

    Jetzt möchte ich den String "name" innerhalb des String "from" anzeigen.
    Code:
    JSONObject wallpost = d.getJSONObject(i);
    FbWallPost newWallPost = new FbWallPost(wallpost.getString("from").getString("name");
    
    TextView view = new TextView(getApplicationContext());
    view.setText(wallpost.getName())
    
    Dies funktioniert jedoch nicht mehr :'(


    Hat jemand 'ne Idee?
     
    Zuletzt bearbeitet: 03.05.2011
  2. maniac103, 03.05.2011 #2
    maniac103

    maniac103 Android-Lexikon

    Beiträge:
    1,237
    Erhaltene Danke:
    1,157
    Registriert seit:
    24.01.2011
    Schuss ins Blaue:
    Code:
    String name = wallpost.getJSONObject("from").getString("name");
    
    'from' ist doch eine Struktur mit Sub-Elementen...
     
    sem_thesis bedankt sich.
  3. sem_thesis, 03.05.2011 #3
    sem_thesis

    sem_thesis Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    0
    Registriert seit:
    06.03.2011
    Phone:
    Nexus One
    Ein Struct?
    Das gibt's doch nur in C++?
    Wie kann man denn auf die einzelnen Elemente zugreifen?
     
  4. sem_thesis, 03.05.2011 #4
    sem_thesis

    sem_thesis Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    0
    Registriert seit:
    06.03.2011
    Phone:
    Nexus One
    Jah! Haste Recht. Jetzt hab ich nochmals einen JSONObject draus gemacht und den Namen herausgezogen - Merci beaucoup :)

    Code:
    final JSONObject fromstruct = new JSONObject(wallpost.getString("from"));
    
    fromstruct.getString("name");
    
     
  5. maniac103, 03.05.2011 #5
    maniac103

    maniac103 Android-Lexikon

    Beiträge:
    1,237
    Erhaltene Danke:
    1,157
    Registriert seit:
    24.01.2011
    Und was genau sprach gegen meine Variante, die Struktur direkt zu extrahieren? Du machst ja jetzt Struktur -> String -> JSONObject; das finde ich etwas merkwürdig. Es wundert mich ehrlich gesagt sogar, dass das funktioniert.
     
  6. sem_thesis, 03.05.2011 #6
    sem_thesis

    sem_thesis Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    0
    Registriert seit:
    06.03.2011
    Phone:
    Nexus One
    Eclipse gibt den Error:
     
  7. maniac103, 04.05.2011 #7
    maniac103

    maniac103 Android-Lexikon

    Beiträge:
    1,237
    Erhaltene Danke:
    1,157
    Registriert seit:
    24.01.2011
    Dann hast du etwas falsch gemacht. Eclipse findet das hier vollkommen ok:
    Code:
        JSONObject wallpost = null; /* ist bei dir natürlich nicht null */
        try {
            JSONObject from = wallpost.getJSONObject("from");
            String name = from.getString("name");
        } catch (JSONException e) {
            Log.d("Test", "Invalid JSON");
        }
    
     

Diese Seite empfehlen