我正在用Java编写一个自定义JSON反序列化器,希望创建一个ArrayList
对象,这些对象在.json
文件中指定。
[
{
"name": "User1",
"gender": "M"
},
{
"name": "User2",
"gender": "F"
}
]
(...)我希望Java程序创建一个包含User
类的两个对象的结构,每个对象包含相应的字段。
我设法只使用文件中提到的一个值(因此没有JSON数组,只有{}
和一些键-值对之间的一个对象),但使用列表会变得更复杂。考虑将整个JSON数组拆分为所有元素,并对每个元素应用我的单个JSON解析算法,然后将它们添加到ArrayList
中。
我的想法应该可行,但问题是,我不太确定如何使用Java的split()
方法正确地拆分JSON数组,我也不太擅长正则表达式,无法找到合适的表达式。
考虑根据以下因素进行拆分:content.split("},")
,然后将最后一个}
附加到最后一个元素,但如果JSON元素引用其他对象,这也将在JSON元素的成员内部进行拆分。
我的问题是,在这个上下文中,什么是一个合适的正则表达式,它将使Java正确地将JSON数组拆分为多个JSON元素?
我可以删除文件开头和结尾的括号,这应该不是问题,因为它只需要简单的字符串操作,但我还需要一个String[]
数组,每个数组包含我的两个用户中的一个,以及他们的数据。
预期输出:
String1: { "name": "User1", "gender": "M" }
String2: { "name": "User2", "gender": "F" }
1条答案
按热度按时间ubof19bj1#
如果它的格式与您的问题相符,您可以用途:
下面是一些测试代码:
输出量: