Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 难以填充多维数组_Java_Arrays_For Loop_Multidimensional Array - Fatal编程技术网

Java 难以填充多维数组

Java 难以填充多维数组,java,arrays,for-loop,multidimensional-array,Java,Arrays,For Loop,Multidimensional Array,我尝试了我能想到的一切,我真的没有主意了。请尽可能提供任何提示 基本上,我创建了一个字符串数组,并在for循环中尝试用另一个数组填充一个二维数组。发生的情况是,当程序到达第二个循环时,它就停止了。什么都没发生,我也不知道为什么 我尝试了几个版本的循环,并手动填充,但每次都会发生同样的事情 我需要的是: array[][] = {[], [], []} 我得到的是:娜达 public void getEwonData(String data) { JsonParser parser =

我尝试了我能想到的一切,我真的没有主意了。请尽可能提供任何提示

基本上,我创建了一个字符串数组,并在for循环中尝试用另一个数组填充一个二维数组。发生的情况是,当程序到达第二个循环时,它就停止了。什么都没发生,我也不知道为什么

我尝试了几个版本的循环,并手动填充,但每次都会发生同样的事情

我需要的是:

array[][] = {[], [], []}
我得到的是:娜达

public void getEwonData(String data)
{
    JsonParser parser = new JsonParser();

    try
    {
        Object obj = parser.parse(data);
        JsonObject jsonObj = (JsonObject)obj;
        JsonArray arr = jsonObj.get("ewons").getAsJsonArray();
        String[][] array = null;
        for(int i = 0; i < arr.size(); i++)
        {

            JsonObject p = (JsonObject) arr.get(i);
            JsonElement varName  = p.get("name");
            JsonElement varStatus = p.get("status");
            JsonElement varDesc = p.get("description");

            String[] varInfo = {varName.toString(), varStatus.toString(), varDesc.toString()};


             //This is where it stops. 
            for(int x = 0; x <= varInfo.length - 1; x++)
            {
                array[i][x] = varInfo[x];
            }
            //I can't get here!
        }

    }
public void getewonda(字符串数据)
{
JsonParser=新的JsonParser();
尝试
{
objectobj=parser.parse(数据);
JsonObject jsonObj=(JsonObject)obj;
JsonArray arr=jsonObj.get(“ewons”).getAsJsonArray();
字符串[][]数组=null;
对于(int i=0;i对于(int x=0;x我假设您打算使用varInfo而不是ewonInfo

守则如下:

try {
    Object obj = parser.parse(data);
    JsonObject jsonObj = (JsonObject) obj;
    JsonArray arr = jsonObj.get("ewons").getAsJsonArray();
    String[][] array = new String[arr.size()][];
    for (int i = 0; i < arr.size(); i++) {

    JsonObject p = (JsonObject) arr.get(i);
    JsonElement varName = p.get("name");
    JsonElement varStatus = p.get("status");
    JsonElement varDesc = p.get("description");

    String[] varInfo = {varName.toString(), varStatus.toString(), varDesc.toString()};
    array[i] = varInfo;
    }

}
试试看{
objectobj=parser.parse(数据);
JsonObject jsonObj=(JsonObject)obj;
JsonArray arr=jsonObj.get(“ewons”).getAsJsonArray();
字符串[][]数组=新字符串[arr.size()][];
对于(int i=0;i
问题已经解决。正如一些人指出的那样,我从未初始化过我的数组。在初始化之后,现在一切都正常了。

你能发布一个你正在传递到方法中的数据样本吗?你的代码没有编译;
ewonInfo
是一个未声明的变量。但这里有一个主要问题:
String[]array=null;
。你从来没有将数组分配给
array
,所以当你试图在内部for-loop中访问它时,你会得到
NullPointerException
。什么是
ewonInfo
,你在哪里声明过它?是的,我修复了上面的代码,这只是复制和粘贴之间的一个混乱。更正后,你是awesome!你在我的数组上说得非常正确。我想这可能是在解决我的catch子句没有抛出错误,但现在它抛出了错误。我实际上声明了我的字符串[][]数组,正如Erwin所指出的。现在所有问题都解决了:)非常感谢!是的,当我更改变量时,变量的名称是正确的,我忘记了这么做,谢谢。我也直接分配了它,同样的事情发生了,所有的事情都停止了。我在数组后面放了一个println debug语句,看看发生了什么,它没有走多远。你的问题只是字符串[][]array=null;您只需要在尝试调用array[i][x]之前初始化它