java - 无法使 json 对 recyclerview 有效

标签 java android json gson

我正在尝试使用 Gson 和 recyclerview 进行 JSON 处理。我的 JSON 不完全有效。在我的 JSON 中,food 字段只有一个字符串被引用,而另一个则不被引用。请参阅下面我的 JSON...

[

    {"quantity" = 2, 
    "price" = 15, 
    "food" = "Fried" Rice}, 

    {"quantity" = 2,
    "price" = 20,
    "food" = "Rice" and Stew}

    ]

您可以看到 Fried 有引号,而 Rice 没有引号,同样,Rice 和 Stew 也有同样的情况。最初是这样的......

[

    {quantity = 2, 
    price = 15, 
    food = Fried Rice}, 

    {quantity = 2,
    price = 20,
    food = Rice and Stew}

    ]

我的 Activity 类代码...

Bundle extras = getIntent().getExtras();

    if (extras != null) {
        String listOfFood = extras.getString("foods");
        listOfFood = listOfFood.replaceAll("([\\w]+)[ ]*=", "\"$1\" ="); // to quote before = value
        listOfFood = listOfFood.replaceAll("=[ ]*([\\w@\\.]+)", "= \"$1\""); // to quote after = value, add special character as needed to the exclusion list in regex
        listOfFood = listOfFood.replaceAll("=[ ]*\"([\\d]+)\"", "= $1"); // to un-quote decimal value
        listOfFood = listOfFood.replaceAll("\"true\"", "true"); // to un-quote boolean
        listOfFood = listOfFood.replaceAll("\"false\"", "false"); // to un-quote boolean

        Log.d(TAG, "onCreate: "+listOfFood);

        GsonBuilder builder = new GsonBuilder();
        Gson mGson = builder.create();
        List<FoodOrder> posts = new ArrayList<FoodOrder>();
        posts = Arrays.asList(mGson.fromJson(listOfFood, FoodOrder[].class));
        adapter = new RecyclerViewAdapter(FoodsOrderedActivity.this, posts);
        recyclerView.setAdapter(adapter);
    }

我需要将炒饭放在引号之间的食品字段,作为米饭和炖菜的引号,或者是否有解决方法,我想知道。

谢谢

最佳答案

基于您的代码。 (尝试将 listOfFood 转换为 JSON ) 我修改了你的两行代码如下

        listOfFood = listOfFood.replaceAll("(\\s*)([^{,\\s]+)(\\s*)=","$1\"$2\"$3:"); // to quote before = value and replace = by :
        listOfFood = listOfFood.replaceAll("(:\\s*)([^\\s,{}](\\s*[^\\s,{}]+)*)", "$1\"$2\""); // to quote after = value (= now became :) 

关于java - 无法使 json 对 recyclerview 有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57862236/

相关文章:

java - JMS 和消息驱动 EJB Bean

android - Android上Service和Activity的通信

android - 在应用之间共享自定义 AccountAuthenticator

php - 将 json 数组从 PHP 传递到 JS

ios - 我如何根据用户的回答为常见问题创建模型?

java - Guava 中 ForwardingMap 的用途是什么?

文本中的 JavaFx TextFields

java - 两个字符串 - 哪个更好?

java - 直方图比较

javascript - jQuery autopopulate select 下拉从 JSON 问题