繁体   English   中英

如何在Java中将复杂的字符串转换为列表/数组?

[英]How to convert a complex string to a list / array in Java?

我知道使用myString.split(","); 如果我只有一个用逗号分隔的字符串,如"a", "b", "c" ,则可以工作,但是如果我有一个更复杂的字符串,如:

[“餐点”,“餐点”,“菜单”,{“颜色”:“黑色”,“宽度”:1}]

我想把元素分开

“用餐结束”

“饭端”

“菜单”

{“颜色”:“黑色”,“宽度”:1}

我的第一种方法是从(1到string.length-1)获取整个内容的子字符串。 删除了[]。 然后,我使用了string.split(“,”),它几乎可以工作...但是对于元素3,我最终得到了我不想要的{“ color”:“ black”。

我想要整个花括号对象。 除了手动搜索整个字符串,在找到{时停止并在到达}时继续之外,我该如何做?

我考虑过使用JSONObject,但是我的字符串包含在[]中。我总是可以用{}替换它们,但是仍然没有键...

我建议“杰克逊”。 它将此字符串解析为包含3个字符串和1个映射的列表。

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"));

输出:

Meal End 
black

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM