[英]how to parse a JSON from file?
我有一個基本問題,但我無法為 android 應用程序完成這項工作。 我有一個看起來像這樣的 JSON 文件:
{
"catches":[
{
"time":"Jan 14, 2021 10:40:04 PM",
"amount":1,
"condition":0.8
},
{
"time":"Jan 15, 2021 12:05:14 PM",
"amount":"2",
"condition":1.0
},
{
"time":"Jan 16, 2021 11:30:04 PM",
"amount":"3",
"condition":null
}
]
}
如何從存儲在內部存儲器中的文件中解析 JSON 並將值分配給變量? 在 C# 我可以這樣做:
static void Main(string[] args)
{
string fPath = "C:/Temp/myJSON.json";
using (StreamReader r = new StreamReader(fPath))
{
string json = r.ReadToEnd();
Root el;
el = JsonConvert.DeserializeObject<Root>(json);
//variable which later would be used in for a TextView
var lastRecord = el.catches[el.catches.Count - 1].time;
}
}
但我不知道如何在 java 中制作這樣的東西。 謝謝。
您可以將文件內容作為字符串獲取:
fun getDataAsStringFromPath(path: String): String {
val file = File(this.javaClass.classLoader?.getResource(path)?.path)
return file.readText(Charset.defaultCharset())
}
確保將此文件保存在res
所在位置的resources
目錄中。
我建議您查看 JSON 解析庫。 我推薦的是 Jackson。 將字符串解析為 object 非常容易。 首先,您創建一個數據 class。 在您的示例中,您將需要兩個:CacheItem 和 Container(如果您願意,請適當重命名)
class CacheItem {
private String time;
private Integer amount;
private Double condition;
// Getters and Setters
}
class Container {
private List<CacheItem> caches;
// Getter and Setter
}
現在,您要從文件中解析字符串,獲取 Object 映射器(請參閱 Jackson API 為此)並簡單地調用Container container = mapper.readValue(string, Container.class);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.