我有一个基本的问题,但我不能让这个工作的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做这个。谢谢。
2条答案
按热度按时间wixjitnu1#
您可以将文件内容提取为字符串:
请确保将此文件保存在
resources
目录中与res
所在的位置相同的位置。t40tm48m2#
我建议你看一下JSON解析库。我推荐的是Jackson。它很容易将String解析成你的对象。首先,你创建一个Data类。在你的例子中,你需要两个:CacheItem和Container(如果您愿意,可以适当地重命名)
现在,在您想要解析文件中的String的地方,获取对象Map器(请参见JacksonAPI),然后简单地调用
Container container = mapper.readValue(string, Container.class);