应为布尔值,但为begin\u数组

z4bn682m  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(231)

我目前正在从事android项目,但我对android还是比较陌生,尤其是java。我有个错误 Expected a boolean but was BEGIN_ARRAY at line 1 column 114 path $[0].ItemDetails . 这些错误将我重定向到这一行代码,特别是在第二行:

Type listType = new TypeToken<List<Receipt>>(){}.getType();
receipt = r.fromJson(receipt_data, listType);

我打赌这是新手犯的错误,但我不知道如何解决这个问题。我很感激你的回答。
这是完整的代码

package tech.agronum.kitchenwaremobile.fragments.products;

import android.annotation.SuppressLint;
import android.content.SharedPreferences;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.util.List;

import tech.agronum.kitchenwaremobile.R;
import tech.agronum.kitchenwaremobile.adapters.TabAdapter;
import tech.agronum.kitchenwaremobile.fragments.carts.DaftarCartFragment;
import tech.agronum.kitchenwaremobile.models.Login.Login;
import tech.agronum.kitchenwaremobile.models.Mobile.Product.Receipt;

public class DaftarProdukFragment extends Fragment implements View.OnClickListener {

    public TabAdapter adapter;
    private TabLayout tabLayout;
    private ViewPager viewPager;
    private FloatingActionButton cart;
    Fragment cart_page;
    FragmentManager fragmentManager;
    Login login;
    List<Receipt> receipt;

    @SuppressLint("RestrictedApi")
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_daftar_produk, container, false);
        fragmentManager = getActivity().getSupportFragmentManager();

        final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
        String receipt_data = preferences.getString("order_data", "");
        Gson r = new Gson();
        String test = preferences.getString("userData", "");
        Gson g = new Gson();
        login = g.fromJson(test, Login.class);
        Type listType = new TypeToken<List<Receipt>>(){}.getType();
        receipt = r.fromJson(receipt_data, listType);

        tabLayout = (TabLayout) view.findViewById(R.id.tabLayout);
        viewPager = (ViewPager) view.findViewById(R.id.viewPager);
        cart = (FloatingActionButton) view.findViewById(R.id.cart);

        configureTabLayout();

        if(receipt == null) {
            cart.setBackgroundColor(Color.RED);
            cart.setBackgroundTintList(ColorStateList.valueOf(Color.RED));
            cart.setEnabled(false);
        } else {
            cart.setBackgroundColor(Color.GREEN);
            cart.setBackgroundTintList(ColorStateList.valueOf(Color.GREEN));
            cart.setEnabled(true);
            cart.setOnClickListener(this);
        }

        if(login.getRoleDetails().getIsReadShoppingCartMobile() == null || login.getRoleDetails().getIsReadShoppingCartMobile() == 0) {
            cart.setVisibility(View.GONE);
        } else {
            cart.setVisibility(View.VISIBLE);
        }
        return view;
    }

    private void configureTabLayout() {
        tabLayout.addTab(tabLayout.newTab().setText("Reguler"));
        tabLayout.addTab(tabLayout.newTab().setText("Bundle/Paket"));

        adapter = new TabAdapter(getChildFragmentManager());
        adapter.addFragment(new DaftarProdukBundleFragment(), "Bundle/Paket");
        adapter.addFragment(new DaftarProdukRegulerFragment(), "Reguler");

        tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);

        viewPager.setAdapter(adapter);
        tabLayout.setupWithViewPager(viewPager);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.cart:
                cart_page = new DaftarCartFragment();
                fragmentManager.beginTransaction().replace(R.id.mainMenu_container, cart_page).addToBackStack("fragment").commit();
                break;
            default:
                break;
        }
    }

}
pexxcrt2

pexxcrt21#

检查收据类。这里面肯定有不匹配的地方。使用此命令再次生成receipt类-http://www.jsonschema2pojo.org/
请遵循此说明了解更多信息。https://github.com/google/gson/blob/master/userguide.md

相关问题