Json对象返回括号

时间:2018-02-27 04:42:48

标签: android json

我正在尝试解析一个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

3 个答案:

答案 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的原因。它终于有效了。