我的数据中包含以下JSON字段。
val myjsonString = """[{"A":[{"myName":"Sheldon""age":30"Qualification":"Btech"}]"B":"UnitedStates"},{"A":[{"myName":"Raj""age":35"Qualification":"BSC"}]"B":"UnitedKIngDom"},{"A":[{"myName":"Howard""age":40"Qualification":"MTECH"}]"B":"Australia"}] """
parse方法具有以下结构:
scala > val json = parse(myjsonString)
json: org.json4s.JValue = JArray(List(JObject(List((A,JArray(List(JObject(List((myName,JString(Sheldon)), (age,JInt(30)), (Qualification,JString(Btech))))))), (B,JString(UnitedStates)))), JObject(List((A,JArray(List(JObject(List((myName,JString(Raj)), (age,JInt(35)), (Qualification,JString(BSC))))))), (B,JString(UnitedKIngDom)))), JObject(List((A,JArray(List(JObject(List((myName,JString(Howard)), (age,JInt(40)), (Qualification,JString(MTECH))))))), (B,JString(Australia))))))
我正在尝试使用Scala json4s
解析它。访问了几乎所有以前与此相关的问题,但是,无法找到适当的解决方案。 O / P应该是这样的:-
UnitedStates 30
UnitedKIngDom 35
Australia 40
或仅使用30#35#45
格式的年龄。
答案 0 :(得分:0)
您发布的JSON无效,对象字段之间缺少逗号。
为了获得所需的输出,您需要从成功解析数据后Json4s将创建的已解析AST中提取数据。 Json4s提供了多种方法来处理和从已解析的AST中提取数据。
您可以映射到JArray内的对象列表,并从每个对象中提取国家和年龄。我不希望提供执行此操作的代码,因为除了简单地解析JSON字符串外,您还没有提供尝试执行的示例。