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