Я делаю тестовое приложение с Android. У меня есть json-файл, и я хочу прочитать его в классе активности. Вот json-файл. Написал код, но код не распознает переменную «вопрос», которую я описал вверху.(SOLVED) Android-Parsing Local JSON Data (папка с ресурсами)
{
"questions": [
{
"id": "a200",
"question": "lorem ipsum dolor _______ amet",
"optionA": "lorem",
"optionB": "ipsum",
"optionC" : "dolor",
"optionD": "sit"
"rightAnswer" : "sit"
},
{
"id": "b200",
"question": "_____ ipsum dolor sit amet",
"optionA": "lorem",
"optionB": "ipsum",
"optionC" : "dolor",
"optionD": "sit"
"rightAnswer" : "lorem"
},
{
"id": "c200",
"question": "lorem _____ dolor sit amet",
"optionA": "lorem",
"optionB": "ipsum",
"optionC" : "dolor",
"optionD": "sit"
"rightAnswer" : "ipsum"
},
]
}
А вот OnCreate часть моего QuizActivityAdjectives.java файла.
public class QuizActivityAdjectives extends Activity {
\t TextView txt_questionAdjective;
\t @Override
\t protected void onCreate(Bundle savedInstanceState) {
\t \t super.onCreate(savedInstanceState);
\t \t setContentView(R.layout.activity_quiz_adjectives);
\t \t // Hangi xml dosyasının dikkate alınacağı belirlendi.
\t \t // Reading json file from assets folder
\t \t StringBuffer sb = new StringBuffer();
\t \t BufferedReader br = null;
\t \t try {
\t \t \t br = new BufferedReader(new InputStreamReader(getAssets().open(
\t \t \t \t \t "Questions.json")));
\t \t \t String temp;
\t \t \t while ((temp = br.readLine()) != null)
\t \t \t \t sb.append(temp);
\t \t } catch (IOException e) {
\t \t \t e.printStackTrace();
\t \t } finally {
\t \t \t try {
\t \t \t \t br.close(); // stop reading
\t \t \t } catch (IOException e) {
\t \t \t \t e.printStackTrace();
\t \t \t }
\t \t }
\t \t // Try to parse JSON
\t \t try {
\t \t \t // Creating JSONObject from String
\t \t \t JSONObject jsonObjMain = new JSONObject();
\t \t \t // Creating JSONArray from JSONObject
\t \t \t JSONArray jsonArray = jsonObjMain.getJSONArray("questions");
\t \t \t // JSONArray has four JSONObject
\t \t \t for (int i = 0; i < jsonArray.length(); i++) {
\t \t \t \t // Creating JSONObject from JSONArray
\t \t \t \t JSONObject jsonObj = jsonArray.getJSONObject(i);
\t \t \t \t // Getting data from individual JSONObject
\t \t \t \t int id = jsonObj.getInt("id");
\t \t \t \t String question = jsonObj.getString("question");
\t \t \t \t String optionA = jsonObj.getString("optionA");
\t \t \t \t String optionB = jsonObj.getString("optionB");
\t \t \t \t String optionC = jsonObj.getString("optionC");
\t \t \t \t String optionD = jsonObj.getString("optionD");
\t \t \t \t String rightAnswer = jsonObj.getString("rightAnswer");
\t \t \t }
\t \t } catch (JSONException e) {
\t \t \t // TODO Auto-generated catch block
\t \t \t e.printStackTrace();
\t \t }
\t \t String myjsonstring = sb.toString();
\t \t txt_questionAdjective = (TextView) findViewById(R.id.txt_questionAdjective);
\t \t txt_questionAdjective.setText(question); //THE CODE ERRORS HERE. CAN NOT RESOLVE QUESTION VARIABLE.
\t }
Как я могу избавиться от этого вопроса? И этот код имеет смысл? Это будет работать ?
Ошибка: «вопрос не может быть решен к переменной» (Комментарий строки я написал в нижней части)
Спасибо заранее.
EDIT: решаемые Я бы никогда не ожидать, но после исправления файла JSON (там должен был быть запятая, которая i'ven't подмечено, я был должен изменить значение идентификатора, которые были описаны в междунар и приведены в файле JSON с гольца (как A200) После того, что проблема исчезла, и JSON было неправдоподобным Спасибо большое за ваше внимание
Попробуйте создать 'JSONObject' с' String' вы читаете, вместо того, чтобы просто пометив его с комментарием: P – ceekay
Не могу спросить Будет ли это работать? Проделайте некоторую работу и сообщите об ошибке, если это произойдет. – Harry
Как я упоминал в сниппет в строке комментария .. Описание \t \t ресурсов Путь \t \t Расположение Тип вопрос не может быть решен к переменной \t \t QuizActivityAdjectives.java/YDSQuizApplication/SRC/орг/например/ydsquizapp \t линии 79 \t Проблема Java – nsarchar