我正在尝试解析一个Json对象,它有这些数据:
"ingredients":["White bread","Bratwurst","Onions","Tomato ketchup","Mustard","Curry powder"]
当我返回值时,textview会打印出这个:
[White bread,Bratwurst,Onions,Tomato ketchup,Mustard,Curry powder]
我想删除括号,但我不能。我到目前为止这样做了:
List<String> mIngredientArray = new ArrayList<>();
JSONArray ingredients = null;
Sandwich mSandwich = new Sandwich();
ingredients = mJsonObject.getJSONArray("ingredients");
for(int i=0; i<ingredients.length();i++){
mIngredientArray.add(ingredients.getString(i));
}
mSandwich.setIngredients(mIngredientArray);
textview代码:
ingredientsTV.setText(sandwich.getIngredients().toString());
但不起作用。关于如何解决它的任何想法?
必需的输出: -
White bread, Bratwurst, Onions, Tomato ketchup, Mustard, Curry powder
答案 0 :(得分:3)
如果您只想删除括号,可以像这样使用正则表达式
strIngredients = sandwich.getIngredients().toString();
strIngredients = strIngredients.replaceAll("\\[", "").replaceAll("\\]","");
ingredientsTV.setText(strIngredients);
答案 1 :(得分:1)
您可以按照建议替换括号字符,但这并不是我最直接的解决方案。您需要指定List对象如何转换为字符串 - 类似于:
String.join(“, “, mIngredientArray)
答案 2 :(得分:0)
最后,我使用这行代码来解决我的问题:
ingredientsTv.setText(sandwich.getIngredients().toString().replace("[","").replace("]",""));
当我尝试使用ReplaceAll时,IDE说我需要使用24作为minimunSdkVersion,但我使用的是16,这就是我使用replace而不是ReplaceAll的原因。它终于有效了。