为了账号安全,请及时绑定邮箱和手机立即绑定

数组的字符串版本到 ArrayList

数组的字符串版本到 ArrayList

慕村225694 2023-03-31 17:12:06
我有一个像这样的字符串String myString = "[\"One\", \"Two\"]";我正在努力弄清楚如何将它变成一个值为“一”和“二”的 ArrayList我试过使用JSONArray,但它似乎并没有像我预期的那样工作编辑:“当我打印我的字符串时,它实际上打印时没有 \System.out.println(myString)印刷:["One", "Two"]我试过JSONArray jsonArr = new JSONArray(stringCharactersArray);并知道构造函数不能接受字符串。我正在使用 JSONArray 来自 <dependency>        <groupId>com.googlecode.json-simple</groupId>        <artifactId>json-simple</artifactId>        <version>1.1.1</version>    </dependency>
查看完整描述

3 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

如果您想使用 json-simple解析您的字符串,请执行以下操作:


String myString = "[\"One\", \"Two\"]";

JSONArray array = (JSONArray) new JSONParser().parse(myString);

System.out.println(array);

这打印出来:


["One","Two"]

如果你想把它作为一个,java.util.List那么只需执行以下操作:


String myString = "[\"One\", \"Two\"]";

List<String> list = Arrays.asList(myString.replaceAll("[\\[\\]]", "").split(", "));

System.out.println(list);

这打印出来:


["One", "Two"]


查看完整回答
反对 回复 2023-03-31
?
梦里花落0921

TA贡献1772条经验 获得超5个赞

我运行了你的代码并且它工作正常但是我没有使用com.googlecode.json-simple我使用的org.json.JSONArray:


<!-- https://mvnrepository.com/artifact/org.json/json -->

<dependency>

    <groupId>org.json</groupId>

    <artifactId>json</artifactId>

    <version>20180813</version>

</dependency>

和代码:


import org.json.JSONArray;


public class Test {

    public static void main(String[] args) {

        String val = "[\"One\", \"Two\"]";

        

        JSONArray jsonArr = new JSONArray(val);  

        for (int i = 0; i < jsonArr.length(); i++) {

            System.out.println( jsonArr.getString( i ) );

        }

    }

}

这打印:




似乎它不需要输入字符串 json 数组完全按照以下标准形成:


{"arr": ["One", "two"]}.


希望这可以帮助。


查看完整回答
反对 回复 2023-03-31
?
HUH函数

TA贡献1836条经验 获得超4个赞

你可以试试这个。我用了“org.json”


String myString = "[\"One\", \"Two\"]";

try {

    JSONArray jsonArray = new JSONArray(myString);

    for (int i = 0; i < jsonArray.length(); i++) {

        System.out.println(jsonArray.getString(i));

    }

} catch (JSONException e) {

    e.printStackTrace();

它会打印出来。


One

Two


查看完整回答
反对 回复 2023-03-31
  • 3 回答
  • 0 关注
  • 84 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信