Мне нужна небольшая помощь здесь, как с небольшим советом. Мне нужен дополнительный набор глаз, чтобы посмотреть мой код и посмотреть, есть ли ошибка с данными Yahoo Answers JSON, которые я проанализировал. Я думаю, что я правильно проанализировал данные JSON, и я просто хочу, чтобы кто-то просмотрел его, чтобы убедиться, что у меня есть правильные данные.Android json parse
Это данные, которые я пытаюсь разобрать из моего веб-сервиса:
{
"query": {
"count": 1,
"created": "2013-08-09T19:37:46Z",
"lang": "en-US",
"diagnostics": {
"publiclyCallable": "true",
"url": {
"execution-start-time": "524",
"execution-stop-time": "783",
"execution-time": "259",
"proxy": "DEFAULT",
"content": "http://answers.yahooapis.com/AnswersService/V1/getQuestion?question_id=20100207231859AAZVura"
},
"user-time": "783",
"service-time": "259",
"build-version": "38788"
},
"results": {
"Question": {
"id": "20100207231859AAZVura",
"type": "Answered",
"Subject": "What gives some humans the idea that you cannot prove a negative?",
"Content": "Seriously, humans, what is this nonsense? For one thing, the statement 'You cannot prove a negative' is itself phrased negatively. So if it's true, how could you possibly know?\n\nBut more to the point, a negative claim can be disproved in precisely the same ways as a positive claim. Let's take something clearly false as an example, yes? So, square circles. If I say that there is a shape that is both a square and a circle, you can disprove my claim (that is, you can prove the negative claim that there is no such shape) by demonstrating that the property of being square contradicts the property of being circular. Simple, yes?\n\nSo what's the deal? Please explain using words that a clock can understand.\nAonghas, that is true only if the metaphysical things in question have no connection to the physical world. A god who is said to have done things on Earth can be disproved by establishing that those things did not happen, for example.\n\nHuliendin, just because the truth value of a statement may change does not mean that it does not have one at any given point in time.\n\nDavid, a square is defined as a shape with particular characteristics. If a shape does not have those characteristics, it is not a square. It is not possible to discover a square that does not fit the definition of a square. The same goes for a circle. And since the two definitions contradict each other, a shape cannot fit both.\n\nRyan, many humans certainly do have ideas about the properties a god would have. They've written books attributing certain propreties to gods.\nWilliam, you misunderstand the nature of my example. It doesn't matter whether I have seen one. The fact is that if one did exist, it would have to fit the definition of a square and it would have to fit the definition of a circle. That means that, for example, it would have to have exactly one side and exactly four sides. That is a contradiction, and it is a fundamental assumption of logic that a contradictory statement must be false.\nBloodzwurth, you have trouble proving that because you're being deliberately vague. It has nothing to do with negativity. You would have exactly the same difficulty trying to prove that claim to be true as you would trying to prove it to be false.\nI didn't know you spoke clock, CAt. Anyway I agree with you, but only in respect to a posteriori arguments.\nHuliendin, you are treating my proof as an inductive argument, which it is not. I am not saying that no squares are also circles because we haven't come across any yet.\n\nLet's put it this way.\n1. If x is a square, then x has straight sides. (That is part of the definition of a square, and so this statement is tautologous and hence must be correct.)\n2. If x is a circle, then x does not have straight sides. (Again, just part of the definition.)\n3. x is both a circle and a square. (Assumed premise.)\n4. x has straight sides (from 1 and 3).\n5. x does not have straight sides (from 2 and 3).\n6. x does and does not have straight sides (from 4 and 5).\n7. x is not both a square and a circle (from 3 and 6, reductio ad absurdum).\n\nSee? Simple deductive logic. This proof works for any shape 'x' regardless of whether it has been found or not. What I have demonstrated is not just that a square circle does not exist, but that a square circle cannot exist.\n",
"Date": "2010-02-07 23:18:59",
"Timestamp": "1265584739",
"Link": "http://answers.yahoo.com/question/?qid=20100207231859AAZVura",
"Category": {
"id": "396545163",
"content": "Religion & Spirituality"
},
"UserId": "v2w0u1XAaa",
"UserNick": "Yellow Alarm Clock",
"UserPhotoURL": "http://socialprofiles.zenfs.com/images/a3b93240efb619ea3d1b5e2e90844784_48.jpg",
"NumAnswers": "9",
"NumComments": "2",
"ChosenAnswer": "Words a clock can understand huh? Hmmm\n \nOk\n\nTic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic toc tic t",
"ChosenAnswererId": "FWZentXQaa",
"ChosenAnswererNick": "The CAt in the Tin Foil HAt v21",
"ChosenAnswerTimestamp": "1265585654",
"ChosenAnswerAwardTimestamp": "1265757240",
"Answers": {
"Answer": [
{
"Content": "It doesn't matter if you're talking about metaphysical matters (the existence of gods, the afterlife, spirits, whatever), because there's no evidence for or against metaphysical things. Unless you count the lack of evidence as evidence of absence (and some people do, and some people don't).\n\nThe whole point of the matter is that people should just stop worrying about religious/spiritual stuff and just get on with their lives.",
"Reference": null,
"Best": null,
"UserId": "DrMxELRraa",
"UserNick": "Aonghas M",
"Date": "2010-02-07 23:22:28",
"Timestamp": "1265584948"
},
MainActivty:
public class MainActivity extends Activity {
Button getanswer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button getanswer = (Button) findViewById(R.id.button1);
getanswer.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
EditText et = (EditText) findViewById(R.id.editText1);
String searchTerm = et.getText().toString().trim();
Intent in = new Intent(MainActivity.this, ListView.class);
in.putExtra("TAG_SEARCH", searchTerm);
startActivity(in);
}
});
}}
Это способ, которым я пытался разобраны данные из веб-службы:
public class ListView extends ListActivity {
ArrayList<HashMap<String, String>> questionList;
final String TAG_RESULTS = "results";
final String TAG_QUESTION_SUBJECT = "Subject";
final String TAG_QUESTION_NUMANSWERS = "NumAnswers";
final String TAG_QUESTION = "question";
final String TAG_QUESTION_CONTENT = "Content";
final String TAG_QUESTION_CHOSENANSWER = "ChosenAnswer";
final String TAG_ANSWERS = "answers";
final String TAG_ANSWER = "answer";
final String TAG_ANSWERS_CONTENT = "content";
final String TAG_QUERY = "query";
JSONArray question = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.listview);
new LoadAllData().execute();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == 100) {
Intent intent = getIntent();
startActivity(intent);
finish();
}
}
class LoadAllData extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
ProgressDialog pDialog;
pDialog = new ProgressDialog(ListView.this);
pDialog.setMessage("Loading Data. Please wait...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
if (pDialog != null && pDialog.isShowing()) pDialog.dismiss();
}
protected String doInBackground(String... args) {
try {
Intent in = getIntent();
String searchTerm = in.getStringExtra("TAG_SEARCH");
String query = URLEncoder.encode(searchTerm, "utf-8");
String URL = "http://example.com";
JSONParsser jParser = new JSONParsser();
JSONObject json = jParser.readJSONFeed(URL);
try {
//question = json.getJSONArray(TAG_QUESTION);
JSONArray questions = json.getJSONObject("all").getJSONArray("questions");
for(int i = 0; i < questions.length(); i++) {
JSONObject question = questions.getJSONObject(i);
String Subject = question.getString(TAG_QUESTION_SUBJECT);
String NumAnswers = question.getString(TAG_QUESTION_NUMANSWERS);
String ChosenAnswer = question.getString(TAG_QUESTION_CHOSENANSWER);
String Content = question.getString(TAG_QUESTION_CONTENT);
JSONArray answers = question.getJSONObject(TAG_ANSWERS).getJSONArray(TAG_ANSWER);
JSONObject answer = answers.getJSONObject(0);
String content = answer.getString(TAG_ANSWERS_CONTENT);
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_QUESTION_SUBJECT, Subject);
map.put(TAG_QUESTION_NUMANSWERS, NumAnswers);
questionList.add(map);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return TAG_QUESTION ;
}
protected void onPostExecute(String file_URL) {
ListAdapter adapter = new SimpleAdapter(getBaseContext(), questionList,
R.layout.listview,
new String[] { TAG_QUESTION_SUBJECT, TAG_QUESTION_NUMANSWERS }, new int[] {
R.id.Subject, R.id.NumAnswers });
setListAdapter(adapter);
android.widget.ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
// TODO Auto-generated method stub
}
});
}}
}
сообщение об ошибке:
08-11 02:42:52.882: E/AndroidRuntime(4516): FATAL EXCEPTION: AsyncTask #1
08-11 02:42:52.882: E/AndroidRuntime(4516): java.lang.RuntimeException: An error occured while executing doInBackground()
08-11 02:42:52.882: E/AndroidRuntime(4516): at android.os.AsyncTask$3.done(AsyncTask.java:299)
08-11 02:42:52.882: E/AndroidRuntime(4516): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
08-11 02:42:52.882: E/AndroidRuntime(4516): at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
08-11 02:42:52.882: E/AndroidRuntime(4516): at java.util.concurrent.FutureTask.run(FutureTask.java:239)
08-11 02:42:52.882: E/AndroidRuntime(4516): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
08-11 02:42:52.882: E/AndroidRuntime(4516): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
08-11 02:42:52.882: E/AndroidRuntime(4516): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
08-11 02:42:52.882: E/AndroidRuntime(4516): at java.lang.Thread.run(Thread.java:856)
08-11 02:42:52.882: E/AndroidRuntime(4516): Caused by: java.lang.NullPointerException
08-11 02:42:52.882: E/AndroidRuntime(4516): at com.theproblemsolver.ListView$LoadAllData.doInBackground(ListView.java:118)
08-11 02:42:52.882: E/AndroidRuntime(4516): at com.theproblemsolver.ListView$LoadAllData.doInBackground(ListView.java:1)
08-11 02:42:52.882: E/AndroidRuntime(4516): at android.os.AsyncTask$2.call(AsyncTask.java:287)
08-11 02:42:52.882: E/AndroidRuntime(4516): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
08-11 02:42:52.882: E/AndroidRuntime(4516): ... 4 more
Когда я читаю logcat, я получаю системную ошибку, которая говорит, что моя строка результатов не имеет значения. Веб-служба возвращает данные в мою строку jObj, но не в мирные данные, которые я проанализировал.
я отправил полные данные в формате JSON –
Попробуйте то, что я сказал в обновленном ответ , –
Хорошим новым является то, что моего приложения больше нет, и просто говорит, что у него есть системная ошибка, которая говорит, что запрос не имеет значения. ой, а также у меня есть приложение, чтобы вернуть 25 в моем запросе url, но я поставил его, чтобы попробовать 1 вопрос, но все тот же результат. –