这是我想用Gson解析的JSON字符串。我想快速简单地解析它。
{
"values": [
[
1,
1,
0,
0,
0,
0,
11,
0.09090909090909091
],
[
[
0,
0,
0,
0,
0,
1,
0
],
[
0,
0,
0,
0,
0,
1,
0
],
[
0,
0,
0,
0,
0,
0,
0
],
[
0,
0,
0,
0,
0,
0,
0
],
[
0,
0,
0,
0,
0,
0,
0
],
[
0,
0,
0,
0,
0,
0,
0
],
[
0,
0,
0,
0,
0,
11,
0
],
[
0,
0,
0,
0,
0,
0.09090909090909091,
0
]
]
]
}
但我不知道如何用Gson编写解析代码。 最好的结果是我可以从解析的对象中提取列表。
我有可能写这样的类(class)吗?
class Value
{
@SerializedName("0")
List<Float> value1;
@SerializedName("1")
List<Integer> value2;
...........
}
谢谢大家对我的帮助。
最佳答案
据我所知,这是以最有用的格式获取所需信息的最快方法。
您的 JSON 由一个列表组成,其中包含 list1( double 列表)和 list2( double 列表列表)。假设您想要准确解析您提供的示例,这是一个您可以使用的自包含类。
如果您需要有关其工作原理的模式详细信息,请随时询问。
package stackoverflow.questions;
import java.lang.reflect.Type;
import java.util.List;
import stackoverflow.questions.Test.Wrapper;
import com.google.gson.*;
import com.google.gson.reflect.TypeToken;
public class Q20118749 {
/**
* @param args
*/
public static void main(String[] args) {
String json = "{\"values\":[[1,1,0,0,0,0,11,0.09090909090909091],[[0,0,0,0,0,1,0],[0,0,0,0,0,1,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,11,0],[0,0,0,0,0,0.09090909090909091,0]]]}";
JsonElement je = new JsonParser().parse(json);
JsonArray list = je.getAsJsonObject().get("values").getAsJsonArray(); // to get rid of the value part
Type listType1 = new TypeToken<List<Double>>() {}.getType();
Type listType2 = new TypeToken<List<List<Double>>>() {}.getType();
Gson g = new Gson();
List<Double> listOfDouble = g.fromJson(list.get(0), listType1);
List<List<Double>> listOfListOfDouble = g.fromJson(list.get(1), listType2);
System.out.println(listOfDouble);
System.out.println(listOfListOfDouble);
}
}
这是我的执行:
[1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 11.0, 0.09090909090909091]
[[0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 11.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.09090909090909091, 0.0]]
如果您的数据发生变化,当然,您必须相应地更改此代码。
关于java - 使用Gson解析JSON数字数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20118749/