我知道使用myString.split(",");
可以正常工作,如果我只是用逗号分隔"a", "b", "c"
之类的字符串,但是如果我有一个更复杂的字符串如下:
["用餐结束","用餐结束","菜单",{"颜色":"黑&# 34;,"宽度":1}]
我想分离出元素
"用餐结束"
"膳食端"
"菜单"
{" color":" black"," width":1}
我的第一个方法是从(1到string.length - 1)获取整个事物的子串。那删除了[]。然后我使用了几乎起作用的string.split(",")但是对于元素3,我最终得到了{" color":" black"这是我不想要的。
我想要整个花括号对象。我怎么能这样做,除了手动搜索整个字符串,当我找到{时停止,并在我到达时继续}?
我考虑过使用JSONObject,但是我的字符串包含在[]中...我总是可以用{}替换那些但是那时还没有键......
答案 0 :(得分:1)
我建议“杰克逊”。它将此字符串解析为包含3个字符串和1个映射的列表。
theController.getForm().setStyle("-fx-background-color: #FF0000");
theController.getForm().add(button, 1, 1, 0, 0);
theController.getForm().setStyle("-fx-background-color: #0000FF");
输出:
List<?> value = (List<?>) new ObjectMapper().readValue(
"[\"Meal End\", \"meal-end\", \"menu\", {\"color\":\"black\", \"width\":1}]",
Object.class);
System.out.println(value.get(0));
Map<?, ?> map = (Map<?, ?>) value.get(3);
System.out.println(map.get("color"));