{
schoolObject:{
schoolDetails:{
PrincipleId:5706980052,
isPaymentDone:false,
classId:"500720478039",
classDetails:[
{
classId:123591,
studentList:[
{
studentType:0,
categoryName:"",
lastYearFee:{
amount:10.00,
denomination:"INR"
},
currentYearFee:{
amount:49.99,
denomination:"INR"
}
},
{
studentType:1,
categoryName:"",
lastYearFee:{
amount:5.00,
denomination:"INR"
},
currentYearFee:{
amount:15.00,
denomination:"INR"
}
}
],
ItemId:1234567,
schoolInternalId:"976-345272383",
netAmount:{
amount:60.00,
denomination:"INR"
},
studentAccountId:953217682525
}
}
所以,我必须解析这个String并写一个验证函数,使lastYearFee和currentYearFee的总和应该与studentType 0的netChange匹配。
此示例中:对于学生类型0,lastYearFee为10.00,currentYearFee为49.99,Netcharge为60.00。总和是59.99,与NetCharge不匹配。所以我必须在currentYearFee中添加0.01。
我想到的解决方案.. 搜索lastYearFee,搜索当前年费,搜索和netCharge。检查差异并调整currentYearFee。但我不是为此写REGEX。让我们假设我们假设这个结构永远不会改变。我们如何编写解决方案?
问题2: 挑战: 我必须使逻辑有点通用.. 我想写一个正则表达式来提取信息..
获取studentList :: schoolObject,然后是classDetails,后跟studentList .. 所以这会给出
studentList:[
{
studentType:0,
categoryName:"",
lastYearFee:{
amount:10.00,
denomination:"INR"
},
currentYearFee:{
amount:49.99,
denomination:"INR"
}
},
{
studentType:1,
categoryName:"",
lastYearFee:{
amount:5.00,
denomination:"INR"
},
currentYearFee:{
amount:15.00,
denomination:"INR"
}
}
]
现在可以有多个条目,对于studentType 0,1,2 ......其中只提取0 ... studentType中可以有多个条目:0本身。像这里只有currentYearFee和lastYearFee存在。还有更多......
现在schoolObject中的数量后跟classDetails,后跟netCharge ...
得到不同的内容,并修改studentList中的最后一项。
注意:这看起来像JSON,但字段名称中没有双引号。我无法用JSON转换它。我必须修改字符串..