私は学校用の小さなプロジェクトに取り組んでいます。このプロジェクトでは、jsonにエンコードされたデータベースからデータを解析する必要があります。今私は1つだけのオブジェクトをエンコードするためには成功しているが、すべてが取得されているわけではありません。whileループからのjsonデータの解析
Response.Listener<String> responseListener2 = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject2 = new JSONObject(response);
Log.i("HIAAAAAAAAAAAAAA", response);
boolean tweet_success = jsonObject2.getBoolean("tweet_succes");
String tweet_sendbyuser = jsonObject2.getString("tweet_send_by_user");
String tweet_description = jsonObject2.getString("tweet_description");
String tweet_favourites = jsonObject2.getString("tweet_favourites");
String tweet_retweets = jsonObject2.getString("tweet_retweets");
String tweet_reactions = jsonObject2.getString("tweet_reactions");
boolean tweet_isReaction = jsonObject2.getBoolean("tweet_isReaction");
String tweet_reactedTo = jsonObject2.getString("tweet_reactedTo");
String tweet_dateSend = jsonObject2.getString("tweet_dateSend");
Tweet tweet = new Tweet(tweet_sendbyuser, tweet_description, tweet_favourites, tweet_retweets, tweet_reactions, tweet_isReaction, tweet_reactedTo);
LoggedInDetails.getInstance().addTweet(tweet);
if (tweet_success) {
Toast.makeText(LoginActivity.this, "Parsing done", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(getApplicationContext(), HomeActivity.class);
intent.putExtra("username", LoggedInDetails.getInstance().getUsername());
intent.putExtra("password", LoggedInDetails.getInstance().getPassword());
startActivity(intent);
} else {
Toast.makeText(LoginActivity.this, "Error during parsing", Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
Log.i("", response);
}
}};
次に返さ私は、それはすべてのデータを解析持つように作られたコードがあります:
コードは、1つのオブジェクトを転送します。しかし何これが行うことは何行秒かで何もしていない、まだ最初の行から11個の別々のオブジェクトを作成し、次のとおりです。
Response.Listener<String> responseListener2 = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jObject = new JSONObject(response.trim());
Iterator<?> keys = jObject.keys();
boolean tweet_success = false;
while (keys.hasNext()) {
String key = (String) keys.next();
Log.i("HIAAAAAAAAAAAAAA", response);
tweet_success = jObject.getBoolean("tweet_succes");
String tweet_sendbyuser = jObject.getString("tweet_send_by_user");
String tweet_description = jObject.getString("tweet_description");
String tweet_favourites = jObject.getString("tweet_favourites");
String tweet_retweets = jObject.getString("tweet_retweets");
String tweet_reactions = jObject.getString("tweet_reactions");
boolean tweet_isReaction = jObject.getBoolean("tweet_isReaction");
String tweet_reactedTo = jObject.getString("tweet_reactedTo");
String tweet_dateSend = jObject.getString("tweet_dateSend");
Tweet tweet = new Tweet(tweet_sendbyuser, tweet_description, tweet_favourites, tweet_retweets, tweet_reactions, tweet_isReaction, tweet_reactedTo);
LoggedInDetails.getInstance().addTweet(tweet);
}if (tweet_success) {
Toast.makeText(LoginActivity.this, "Parsing done", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(getApplicationContext(), HomeActivity.class);
intent.putExtra("username", LoggedInDetails.getInstance().getUsername());
intent.putExtra("password", LoggedInDetails.getInstance().getPassword());
startActivity(intent);
} else {
Toast.makeText(LoginActivity.this, "Error during parsing", Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
Log.i("", response);
}
}};
はその後、私のcollect_tweet.php(唯一の重要な部分)
if($fetch_tweets->execute()){
$response1 = array();
$response1["tweet_succes"] = false;
while($row = $fetch_tweets->fetch(PDO::FETCH_ASSOC)){
$response1["tweet_succes"] = true;
$response1["succes"] = true;
$response1["tweet_id"] = $row["tweet_id"];
$response1["tweet_send_by_user"] = $row['tweet_sendbyuser'];
$response1["tweet_description"] = $row['tweet_description'];
$response1["tweet_favourites"] = $row['tweet_favourites'];
$response1["tweet_retweets"] = $row['tweet_retweets'];
$response1["tweet_reactions"] = $row['tweet_reactions'];
$response1["tweet_isReaction"] = $row['tweet_isReaction'];
$response1["tweet_reactedTo"] = $row['tweet_reactedTo'];
$response1["tweet_dateSend"] = $row['tweet_dateSend'];
echo json_encode($response1);
}
}else{
$response1["tweet_succes"] = false;
echo json_encode($response1);
}
あり現在、ブラウザになっイムJSONの
パート:(ダミーのテストデータ)
{
"tweet_succes":true,
"succes":true,
"tweet_id":"1",
"tweet_send_by_user":"1",
"tweet_description":"Ja ik weet niet zo goed wat de eerste tweet moest zijn, dus dit is em maar he",
"tweet_favourites":"2, 3, 4",
"tweet_retweets":"2, 3, 4",
"tweet_reactions":"",
"tweet_isReaction":"false",
"tweet_reactedTo":"-1",
"tweet_dateSend":"2016-04-23 23:39:49"
}
{
"tweet_succes":true,
"succes":true,
"tweet_id":"2",
"tweet_send_by_user":"2",
"tweet_description":"Ja ik weet niet zo goed wat de eerste tweet moest zijn, dus dit is em maar he",
"tweet_favourites":"2, 3, 4",
"tweet_retweets":"2, 3, 4",
"tweet_reactions":"",
"tweet_isReaction":"false",
"tweet_reactedTo":"-1",
"tweet_dateSend":"2016-04-23 23:40:49"
}
私はおそらくそれは間違って解析していますか私の代わりに、オブジェクトのJSONArrayを使用する必要があります。
私の目的は、受信しているデータに基づいてつぶやくことです。事前に
感謝〜