Форум программистов, компьютерный форум CyberForum.ru

Ошибка - Errororg.json.JSONExceprion: Value bd.json of type java.lang.String cannot be converted to JSONObject - Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.64
Freemanasus
2 / 2 / 1
Регистрация: 25.01.2014
Сообщений: 51
27.02.2014, 02:28     Ошибка - Errororg.json.JSONExceprion: Value bd.json of type java.lang.String cannot be converted to JSONObject #1
Здравствуйте! Есть база данных bd.json, которая находится в проекте в папке assets. Вот содержимое базы данных;
Javascript
1
2
3
4
5
6
{
   "name": "Дефектологический",
   "name": "~Логопедия",
   "name": "~Олигофренопедагогика",
   "name": "~Специальная психология"
}
Программа должна читать файл bd.json и переносить каждый пункт базы данных в ListView, но выводит ошибку (Errororg.json.JSONExceprion: Value bd.json of type java.lang.String cannot be converted to JSONObject). Подскажите почему. Вот код программы;
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package com.example.freedom;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
 
public class Freedom extends Activity {
    private String jsonString = ("bd.json");//Мне кажется здесь ошибка.
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_freedom);
        initList();
        ListView listView = (ListView) findViewById(R.id.listView1);
        SimpleAdapter simpleAdapter = new SimpleAdapter(this, FreedomList, android.R.layout.simple_list_item_1, new String[] {"Freedom"}, new int[] {android.R.id.text1});
        listView.setAdapter(simpleAdapter);
    }
   
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.freedom, menu);
        return true;
    }
    List<Map<String,String>> FreedomList = new ArrayList<Map<String,String>>();
    private void initList(){
      
     try{
      JSONObject jsonResponse = new JSONObject(jsonString);
      JSONArray jsonMainNode = jsonResponse.optJSONArray("Freedom");
      
     for(int i = 0; i<jsonMainNode.length();i++){
      JSONObject jsonChildNode = jsonMainNode.getJSONObject(i);
      String name = jsonChildNode.optString("name");
      String outPut = name;
      FreedomList.add(createFreedom("Freedom", outPut));
     }
    }
     catch(JSONException e){
      Toast.makeText(getApplicationContext(), "Error"+e.toString(), Toast.LENGTH_SHORT).show();
     }
    }
     
    private HashMap<String, String>createFreedom(String name,String number){
     HashMap<String, String> FreedomNameNo = new HashMap<String, String>();
     FreedomNameNo.put(name, number);
     return FreedomNameNo;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2014, 02:28     Ошибка - Errororg.json.JSONExceprion: Value bd.json of type java.lang.String cannot be converted to JSONObject
Посмотрите здесь:

Android Ошибка java.lang.OutOfMemoryError
Ошибка activity_main.xml: java.lang.System.arraycopy([CI[CII)V Android
Android Java json parse - вывод русского текста
Android Ошибка: java.lang.NullPointerException: Attempt to invoke virtual method
Android Java.lang.ClasscastException
Android Array type expected; found: 'java.lang.string'
Android NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()'
Android JSON
Android Ava.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] link.stuzer.stattrack.data
Android Ошибка JSON в Retrofit
Ошибка java.lang.NullPointerException Android
Ошибка Value null at rows of type org.json.JSONObject$1 cannot be converted to JSONArray Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gabberr
 Аватар для Gabberr
101 / 101 / 17
Регистрация: 13.10.2009
Сообщений: 402
27.02.2014, 09:29     Ошибка - Errororg.json.JSONExceprion: Value bd.json of type java.lang.String cannot be converted to JSONObject #2
получение файла из assets
Java
1
2
AssetFileDescriptor descriptor = getAssets().openFd("bd.json");
FileReader reader = new FileReader(descriptor.getFileDescriptor());
Freemanasus
2 / 2 / 1
Регистрация: 25.01.2014
Сообщений: 51
27.02.2014, 23:50  [ТС]     Ошибка - Errororg.json.JSONExceprion: Value bd.json of type java.lang.String cannot be converted to JSONObject #3
Пишет "Default constructor cannot handle exception type IOException thrown by implicit super constructor. Must define an explicit constructor". Я не туда вставляю или что?
Gabberr
 Аватар для Gabberr
101 / 101 / 17
Регистрация: 13.10.2009
Сообщений: 402
28.02.2014, 09:06     Ошибка - Errororg.json.JSONExceprion: Value bd.json of type java.lang.String cannot be converted to JSONObject #4
можете функцию использовать:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public String ReadFromfile(String fileName, Context context) {
    StringBuilder returnString = new StringBuilder();
    InputStream fIn = null;
    InputStreamReader isr = null;
    BufferedReader input = null;
    try {
        fIn = context.getResources().getAssets()
                .open(fileName, Context.MODE_WORLD_READABLE);
        isr = new InputStreamReader(fIn);
        input = new BufferedReader(isr);
        String line = "";
        while ((line = input.readLine()) != null) {
            returnString.append(line);
        }
    } catch (Exception e) {
        e.getMessage();
    } finally {
        try {
            if (isr != null)
                isr.close();
            if (fIn != null)
                fIn.close();
            if (input != null)
                input.close();
        } catch (Exception e2) {
            e2.getMessage();
        }
    }
    return returnString.toString();
}
Yandex
Объявления
28.02.2014, 09:06     Ошибка - Errororg.json.JSONExceprion: Value bd.json of type java.lang.String cannot be converted to JSONObject
Ответ Создать тему
Опции темы

Текущее время: 07:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru