gpt4 book ai didi

java - 有没有办法重载 JSONArray 使其表现得像循环中的常规列表?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:36:50 34 4
gpt4 key购买 nike

我很好奇是否有一种扩展 JSONArray 的语法方法,这样我就可以像在 List 中一样在 for(:) 循环中使用它。

因此,不必这样做:

for(int i = 0; i< myJsonArray.length(); i++){
myJsonArray.getString(i);
}

我想做

for(String s : myJsonArray);

我意识到我需要确保在上面的示例中数组中的对象确实是一个字符串,但考虑到 JSONArrays 只能处理一些不应该成为问题的类型。

最佳答案

稍微调整一下所需的语法:

for(String s : iterable(myJsonArray))

然后像这样编写iterable方法:

public static Iterable<String> iterable(final JSONArray array) {
return new Iterable<String> {
Iterator<String> iterator() {
return new Iterator<String> {
int i = 0;

boolean hasNext(){
return i < array.length();
}

String next(){
return array.getString(i++);
}

void remove(){
throw new RuntimeException(); //implement if you need it
}
}
}
};
}

I realize that I need to make sure that in the above example the object in the array is indeed a String

不是真的,好像它不是一个 String,它将是 coerced to a String无论如何。

关于java - 有没有办法重载 JSONArray 使其表现得像循环中的常规列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34432401/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com