gpt4 book ai didi

Android Facebook SDK 解析JSON

转载 作者:行者123 更新时间:2023-11-29 21:36:08 24 4
gpt4 key购买 nike

我在解析 JSON 代码时遇到问题。我在 Android 上使用 Facebook SDK。看过很多教程,但对我没有帮助。

{
"id": "1000004577",
"friends": {
"data": [
{
"id": "11343",
"statuses": {
"data": [
{
"from": {
"name": "Maria",
"id": "1134"
},
"message": "...How wonderfull life ",
"updated_time": "2011-07-05T21:42:29+0000",
"id": "18665783"
},
{
"from": {
"name": "Maria ",
"id": "113931"
},
"message": "Ab Montag geht es wieder um 8 Uhr los!\nWir werden jetzt ein Woche vom Herrn Vollrerrichtetitet die N wie möglich!!!\n\nIm auftrag von:\n\n Herrn Siebert",
"updated_time": "2010-10-01T18:05:59+0000",
"id": "158583"
},
{
"from": {
"name": "Maria",
"id": "11343"
},
"message": "Esmu majas...!!! viss ir labi!!!",
"updated_time": "2010-07-16T08:04:36+0000",
"id": "137470438"
},
{
"from": {
"name": "Maria ",
"id": "113421"
},
"message": "I miss kitkat ice-cream!:(",
"updated_time": "2010-06-06T16:46:13+0000",
"id": "10231545"
},
{
"from": {
"name": "Maria",
"id": "113121"
},
"message": "its snowin..xD or it looks like!!!!",
"updated_time": "2010-06-02T12:57:39+0000",
"id": "12623356466"
}
],
"paging": {
"previous": "https://graph.facebook.com/1134393121/statuses?limit=5&fields=from,message,updated_time&since=1309902149&__paging_token=1866653502783",
"next": "https://graph.facebook.com/1134393121/statuses?limit=5&fields=from,message,updated_time&until=1275483459&__paging_token=126233544066466"
}
}
},
{
"id": "1179089",
"statuses": {
"data": [
{
"from": {
"name": "Kristine Vaidere",
"id": "123089"
},
"message": "Запомни! Если ты отключаешь мозги, то ты обязательно должна включить телефон. Что-то из этого должно работать всегда. :D",
"updated_time": "2013-07-31T08:43:12+0000",
"id": "1020030233771"
},
{
"from": {
"name": "Kristine",
"id": "1179239"
},
"message": "bija ideāls! Paldies Prāta vētrai un maniem mīļ",
"updated_time": "2013-06-09T15:20:50+0000",
"id": "10200519756813"
},
{
"from": {
"name": "Kristine ",
"id": "1179089"
},
"message": "Mīļie, takā es pazaudēju savu telefonu :( , man nomainijās nr. Lūdzu sūtiet man savējos un esējo :*",
"updated_time": "2013-05-07T19:50:00+0000",
"id": "121433892"
},
{
"from": {
"name": "Kristine",
"id": "1179589"
},
"message": "nepacietīgs pūlis\n brēc, un rokām plātās baigi.\n jo katrs jau zin kā labāk vaj’g",
"updated_time": "2013-02-01T14:40:26+0000",
"id": "463167214"
},
{
"from": {
"name": "Kristine",
"id": "11523089"
},
"message": "Manas jūtas pret dažiem cilvēkiem nav iespējams izteikt vārdos.. Tās var izteikt tikai ar lāpstu, cirvi vai kaut ko tamlīdzīgu... :D",
"updated_time": "2013-01-17T21:31:59+0000",
"id": "454819157"
}
],
"paging": {
"previous": "https://graph.facebook.com/1179523089/statuses?limit=5&fields=from,message,updated_time&since=1375260192&__paging_token=10200845330233771",
"next": "https://graph.facebook.com/1179523089/statuses?limit=5&fields=from,message,updated_time&until=1358458319&__paging_token=4548195341157"
}
}
}
],
"paging": {
"next": "https://graph.facebook.com/100000425773779/friends?limit=2&fields=statuses.limit(5).fields(from,message,updated_time)&offset=2&__after_id=1179523089"
}
}
}

我需要获取这些值:

             "from": {
"name": "Maria ",
"id": "113421"
},
"message": "I miss kitkat ice-cream!:(",
"updated_time": "2010-06-06T16:46:13+0000",
"id": "10231545"

然后将它们存储在 hashmap 中...如果有人能帮助解决这个问题就太好了这是无法正常工作的代码。

package com.androidhive.jsonparsing;

import java.util.ArrayList;
import java.util.HashMap;

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

import com.androidhive.jsonparsing.R;
import com.androidhive.jsonparsing.R.id;
import com.androidhive.jsonparsing.R.layout;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

public class AndroidJSONParsingActivity extends ListActivity {




// url to make request
private static String url = "https://graph.facebook.com/100000425773779?fields=friends.limit(1).fields(statuses.limit(5).fields(from,message,updated_time))?access_token=CAACEdEose0cBAJvWFqIXsQXvJvN7mZBHDn6g3ocW4HvfKZCl8JfSkeDvdQNVnVO0UyM297pcM1SlecH613j4NT1KZBCZAAG7L4hTMY7yhZCQRLwhYzHCM6zZAi3ZCwA48JXoJH31QInRO5hjWTyTFEHVL8ao7CRJVc4OLZAooqTQlgZDZD";

// JSON Node names
private static final String TAG_GDATA = "data";
private static final String TAG_DATA = "data";
private static final String TAG_STATUSES = "statuses";
private static final String TAG_NAME = "name";
private static final String TAG_FROM = "from";
private static final String TAG_UPDATE = "updated_time";
private static final String TAG_ID = "id";
private static final String TAG_FRIENDS = "friends";
private static final String TAG_MESSAGE = "message";


// contacts JSONArray
JSONArray contacts = null;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// Hashmap for ListView
ArrayList<HashMap<String, String>> contactList = new ArrayList<HashMap<String, String>>();

// Creating JSON Parser instance
JSONParser jParser = new JSONParser();

// getting JSON string from URL
JSONObject json = jParser.getJSONFromUrl(url);


//Here starts the MESS
try {
// Getting Array of Contacts
JSONObject arrfriends = json.getJSONObject(TAG_FRIENDS);
JSONObject genData = arrfriends.getJSONObject(TAG_GDATA);

JSONArray generalData = ;

for(int i=0; i < contacts.length(); i++) { // Loop over each each row
JSONObject row = contacts.getJSONObject(i); // Get row object
JSONObject c = row.getJSONObject(TAG_DATA);

for(int j=0; j < c.length(); j++){

JSONObject from = c.getJSONObject(TAG_FROM);
String name = from.getString(TAG_NAME);
String id = from.getString(TAG_ID);
String message = c.getString(TAG_MESSAGE);
String update = c.getString(TAG_UPDATE);
String mId = c.getString(TAG_ID);
// creating new HashMap

HashMap<String, String> map = new HashMap<String, String>();
// adding each child node to HashMap key => value

map.put(TAG_NAME, name);
map.put(TAG_ID, id);
map.put(TAG_MESSAGE, message);
map.put(TAG_UPDATE, update);
map.put(TAG_ID, mId);

// adding HashList to ArrayList
contactList.add(map);
}
}

} catch (JSONException e) {
e.printStackTrace();
}


/**
* Updating parsed JSON data into ListView
* */
ListAdapter adapter = new SimpleAdapter(this, contactList,
R.layout.list_item,
new String[] { TAG_NAME, TAG_MESSAGE, TAG_UPDATE }, new int[] {
R.id.name, R.id.email, R.id.mobile });

setListAdapter(adapter);

// selecting single ListView item
ListView lv = getListView();

// Launching new screen on Selecting Single ListItem
lv.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// getting values from selected ListItem
String name = ((TextView) view.findViewById(R.id.name)).getText().toString();
String cost = ((TextView) view.findViewById(R.id.email)).getText().toString();
String description = ((TextView) view.findViewById(R.id.mobile)).getText().toString();

// Starting new intent
Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class);
in.putExtra(TAG_NAME, name);
in.putExtra(TAG_MESSAGE, cost);
in.putExtra(TAG_UPDATE, description);
startActivity(in);

}
});



}

}

最佳答案

请使用GSON https://code.google.com/p/google-gson/ , 它会将您的 JSON 转换为 Java 对象,然后您可以从 Java 对象轻松获取所需的任何属性。

关于Android Facebook SDK 解析JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18402437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com