gpt4 book ai didi

java - 使用 Gson 反序列化 JSON

转载 作者:行者123 更新时间:2023-12-01 12:42:05 25 4
gpt4 key购买 nike

我从服务器收到类似于以下语法的 JSON,我需要一些帮助来反序列化和解析它。我读了很多这方面的书,发现使用 GSON 真的很有用! (我将在此处发布对我的代码的任何更新)

(更正的 JSON):

    [{
"name" : "Zone1",
"types" : [{"datatype":"string","brand":"string","index":0},
{"datatype":"string","value":"int32,"index":1},
{"datatype":"string","url":"string,"index":2}]
"data" : [["gucci",2,"www.whoami12345.com"]]
},
{
"name" : "Zone2",
"types" : [{"datatype":"string","brand":"string","index":0},
{"datatype":"string","value":"int32,"index":1},
{"datatype":"string","url":"string,"index":2}]
"data" : [["nike", 23,"www.nike.com"]]
}]

我找到了这个网站Link非常简洁,因为它解释了如何使用 gson 并很好地解释了反序列化。我对 JSON 的理解是它是一个数组,数据字段是一个数组的数组。

我的问题是如何解析这个?我有一个函数可以使用字符串搜索特定区域名称。反序列化发生并且条目与正确的区域匹配后,应该返回数据类型和 url。从那篇文章中,我的理解是我应该使用 JSONArray。对于任何反馈,我们都表示感谢。下面是我已经开始的一些代码

import com.google.gson.JsonArray;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;

String name;

public class data{
String brand;
int num;
int url;
}

public class types{
String datatype;
int value;
String url;
}


public types Deserialiser(String json, String zone){ // this is the json string that will be passed into the function


JsonObject jsonObject = json.getAsJsonObject();
JsonArray jsonArray = jsonObject.getAsJsonArray();
int index = -1;
for (int i = 0; i<jsonArray.size();i++){
String temp = jsonArray.get(i).get("name");
if (temp.equals(zone){
index =i;
break;
}

}

....

types jsonTypes = new types();
// set everything else
return jsonTypes;
}

最佳答案

有效的 JSON(我认为):

[{"name"  : "Zone1",
"types" : ["datatype":"string","value":"int","url":"string"],
"data" : [["gucci",2,"www.whoami12345.com"]]},
{"name" : "Zone2",
"types" : ["datatype":"string","value":"int","url":"string"],
"data" : [["nike", 23,"www.nike.com"]]}
]

不——错误地缺少“对象”括号

再试一次:

[{"name"  : "Zone1",
"types" : [{"datatype":"string","value":"int","url":"string"}],
"data" : [["gucci",2,"www.whoami12345.com"]]},
{"name" : "Zone2",
"types" : [{"datatype":"string","value":"int","url":"string"}],
"data" : [["nike", 23,"www.nike.com"]]}
]

啊!!好多了!

关于java - 使用 Gson 反序列化 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25006431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com