首页 > 解决方案 > 如何从 JSONObject 接收数据到简单数组

问题描述

我正在尝试获取 JSONObject 内部的 int 并将其放入字符串数组中,但我只能将其放入简单的字符串中。

这就是 JSONObject 里面的内容{"codigo":2,"nome":"Teste 2"}

那是我可以将 int 从 codigo 传递给简单字符串的代码

String informacao;
    String code;
    String name[];

    ListView listView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent intent = getIntent();
        informacao = intent.getStringExtra("INFO");

        try{
            JSONObject jo = new JSONObject(informacao);

            for (int i = 0; i < jo.length(); i++){
                Log.i("ENTROU", "entrou");
                code = jo.getString("codigo").toString();
                Log.i("CODE!!!", code.toString());
            }
        } catch (JSONException e){
            Log.i("ERRO", e.toString());
        }

来自它的Logcat

2020-03-20 09:48:48.046 23998-23998/br.com.ifractal.Stou I/ENTROU: entrou
2020-03-20 09:48:48.046 23998-23998/br.com.ifractal.Stou I/CODE!!!: 2
2020-03-20 09:48:48.046 23998-23998/br.com.ifractal.Stou I/ENTROU: entrou
2020-03-20 09:48:48.046 23998-23998/br.com.ifractal.Stou I/CODE!!!: 2

现在,当我尝试将其放入字符串数组中时

String informacao;
    String code[];
    String name[];

    ListView listView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent intent = getIntent();
        informacao = intent.getStringExtra("INFO");

        try{
            JSONObject jo = new JSONObject(informacao);

            for (int i = 0; i < jo.length(); i++){
                Log.i("ENTROU", "entrou");
                code[i] = jo.getString("codigo").toString();
                Log.i("CODE!!!", code[i].toString());
            }
        } catch (JSONException e){
            Log.i("ERRO", e.toString());
        }

来自那个的Logcat

2020-03-20 09:56:25.195 25695-25695/br.com.ifractal.Stou I/ENTROU: entrou

标签: javaandroidarraysjson

解决方案


您没有设置数组的长度。它不会像 JavaScript 那样动态增加。如果你像这样初始化数组:String code[] = new String[10];你应该能够设置它的元素。


推荐阅读