簡體   English   中英

JSON Volley 嵌套 JSON 數組 com.android.volley.ParseError: org.json.JSONException

[英]JSON Volley Nested JSON Array com.android.volley.ParseError: org.json.JSONException

我想從https://www.kisahmuslim.com/wp-json/wp/v2/categories getJudul()getExcerpt()getPostImg() 但它告訴我com.android.volley.ParseError: org.json.JSONException

您可以在代碼下方檢查...

DaftarCategories

public class CallingPage extends AsyncTask<String, String, String> {

        HttpURLConnection conn;
        java.net.URL url = null;
        private int page = 1;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

            //this method will be running on UI thread
            showNoFav(false);
            pb.setVisibility(View.VISIBLE);

        }

        @Override
        protected String doInBackground(String... params) {

            try {

                url = new URL("https://www.kisahmuslim.com/wp-json/wp/v2/categories");

            }
            catch(MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                return e.toString();
            }
            try {

                // Setup HttpURLConnection class to send and receive data from php and mysql
                conn = (HttpURLConnection) url.openConnection();
                conn.setReadTimeout(READ_TIMEOUT);
                conn.setConnectTimeout(CONNECTION_TIMEOUT);
                conn.setRequestMethod("GET");

                // setDoOutput to true as we recieve data from json file
                conn.setDoOutput(true);

            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
                return e1.toString();
            }

            try {

                int response_code = conn.getResponseCode();

                // Check if successful connection made
                if (response_code == HttpURLConnection.HTTP_OK) {

                    // Read data sent from server
                    InputStream input = conn.getInputStream();
                    BufferedReader reader = new BufferedReader(new InputStreamReader(input));
                    StringBuilder result = new StringBuilder();
                    String line;

                    while ((line = reader.readLine()) != null) {
                        result.append(line);
                    }

                    // Pass data to onPostExecute method
                    return (result.toString());

                } else {
                    return("koneksi gagal");
                }

            } catch (IOException e) {
                e.printStackTrace();
                return e.toString();
            } finally {
                conn.disconnect();
            }

        }


        protected void onPostExecute(String result)
        {
            JsonArrayRequest stringRequest = new JsonArrayRequest(Request.Method.GET, SumberPosts.HOST_URL+"wp/v2/categories/", null, new Response.Listener<JSONArray>()
            {
                @Override
                public void onResponse(JSONArray response) {
                    // display response
                    Log.d(TAG, response.toString() + "Size: "+response.length());

                    // agar setiap kali direfresh data tidak redundant
                    typeForPosts.clear();

                    for(int i=0; i<response.length(); i++) {
                        final CategoriesModel post = new CategoriesModel();

                        try {
                            Log.d(TAG, "Object at " + i + response.get(i));
                            JSONObject obj = response.getJSONObject(i);

                            post.setId(obj.getInt("id"));
                            post.setPostURL(obj.getString("link"));

                            //Get category name
                            post.setCategory(obj.getString("name"));


                            //////////////////////////////////////////////////////////////////////////////////////
                            // getting article konten
                            JSONObject postCategoryParent = obj.getJSONObject("_links");
                            JSONArray postCategoryObj = postCategoryParent.getJSONArray("wp:post_type");

                            for(int c=0; c<postCategoryObj.length(); c++) {
                                JSONObject postCategoryIndex = postCategoryObj.getJSONObject(c);
                                String postCategoryUrl = postCategoryIndex.getString("href");

                                if(postCategoryUrl != null) {
                                    Log.d(TAG, postCategoryIndex.getString("href"));

                                    JsonObjectRequest getKonten = new JsonObjectRequest(Request.Method.GET, postCategoryUrl, null, new Response.Listener<JSONObject>()
                                    {
                                        @Override
                                        public void onResponse(JSONObject response) {
                                            try {
                                                // Get category title
                                                JSONObject titleObj = response.getJSONObject("title");
                                                post.setJudul(titleObj.getString("rendered"));

                                                //Get category excerpt
                                                JSONObject exerptObj = response.getJSONObject("excerpt");
                                                post.setExcerpt(exerptObj.getString("rendered"));

                                                // Get category content
                                                JSONObject contentObj = response.getJSONObject("content");
                                                post.setContent(contentObj.getString("rendered"));

                                                //////////////////////////////////////////////////////////////////////////////////////
                                                // getting URL of the Post fetured Image
                                                JSONObject featureImage = response.getJSONObject("_links");
                                                JSONArray featureImageUrl = featureImage.getJSONArray("wp:featuredmedia");

                                                for(int y=0; y<featureImageUrl.length(); y++){
                                                    JSONObject featureImageObj = featureImageUrl.getJSONObject(y);
                                                    String fiurl = featureImageObj.getString("href");

                                                    if(fiurl != null) {
                                                        Log.d(TAG, featureImageObj.getString("href"));

                                                        JsonObjectRequest getMedia = new JsonObjectRequest(Request.Method.GET, fiurl, null, new Response.Listener<JSONObject>()
                                                        {
                                                            @Override
                                                            public void onResponse(JSONObject response) {
                                                                try {
                                                                    JSONObject exerptObj = response.getJSONObject("guid");
                                                                    post.setPostImg(exerptObj.getString("rendered"));
                                                                }
                                                                catch (JSONException e) {
                                                                    e.printStackTrace();
                                                                }

                                                                //notifyDataSetChanged untuk mendapatkan gambar
                                                                recycleViewWordPress.setAdapter(mAdapter);
                                                                mAdapter.notifyDataSetChanged();

                                                            }

                                                        }, new Response.ErrorListener() {
                                                            @Override
                                                            public void onErrorResponse(VolleyError error) {
                                                                pb.setVisibility(View.GONE);
                                                                Log.d(TAG, error.toString());
                                                            }

                                                        });

                                                        queue.add(getMedia);
                                                    } //if fiurl
                                                } //for image url

                                            } //try 2
                                            catch (JSONException e) {
                                                e.printStackTrace();
                                            }

                                        } //onResponse2

                                    }, new Response.ErrorListener() { //getKonten
                                        @Override
                                        public void onErrorResponse(VolleyError error) {
                                            pb.setVisibility(View.GONE);
                                            Log.d(TAG, error.toString());
                                        }

                                    });

                                    queue.add(getKonten);
                                } //if postCategoryUrl

                            } //for postCategory
                            //////////////////////////////////////////////////////////////////////////////////////

                            typeForPosts.add(post);

                        } //try 1
                        catch (JSONException e) {
                            e.printStackTrace();
                        }

                    } //for 1

                    pb.setVisibility(View.GONE);
                    recycleViewWordPress.setAdapter(mAdapter);
                    mAdapter.notifyDataSetChanged();

                } //onResponse1

            }, new Response.ErrorListener() { //stringRequest
                @Override
                public void onErrorResponse(VolleyError error) {
                    showNoFav(true);
                    pb.setVisibility(View.GONE);
                    Log.e(TAG, "Error: " + error.getMessage());
                    Toast.makeText(getContext(), "Tidak bisa menampilkan data. Periksa kembali sambungan internet Anda", Toast.LENGTH_LONG).show();
                }
            });

            // Add the request to the RequestQueue.
            queue.add(stringRequest);

        } //onPostExecute
    } //CallingPage

    @Override
    public void onPostingSelected(int pos) {
        CategoriesModel click = typeForPosts.get(pos);

        excerpt = click.getExcerpt();
        gambar = click.getPostImg();
        judul = click.getJudul();
        url = click.getPostURL();
        content = click.getContent();

        Bundle bundle = new Bundle();
        bundle.putString("excerpt", excerpt);
        bundle.putString("gambar", gambar);
        bundle.putString("judul", judul);
        bundle.putString("url", url);
        bundle.putString("content", content);

        PostsBasedOnCategory bookFragment = new PostsBasedOnCategory();
        bookFragment.setArguments(bundle);

        AppCompatActivity activity = (AppCompatActivity) getContext();
        activity.getSupportFragmentManager().beginTransaction().replace(R.id.flContainerFragment, bookFragment).addToBackStack(null).commit();

    }

基於類別的帖子

public class PostsBasedOnCategory extends Fragment implements AdapterCategoryPosts.PostingAdapterListener {

    public static PostsBasedOnCategory newInstance()
    {
        return  new PostsBasedOnCategory();
    }

    private RecyclerView recycleViewWordPress;
    private AdapterCategoryPosts mAdapter;
    private RequestQueue queue;
    public ArrayList<CategoriesModel> typeForPosts;
    private SwipeRefreshLayout swipeRefreshLayout;
    private ProgressBar pb;
    public static final int CONNECTION_TIMEOUT = 2000;
    public static final int READ_TIMEOUT = 2000;
    public static String TAG = "postFrag";
    private int index;
    private TextView noFavtsTV;
    private SearchView searchView;
    private String content, gambar, judul, url;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.activity_wordpress, container,false);
        ButterKnife.bind(this,view);
        setHasOptionsMenu(true);
        return view;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        swipeRefreshLayout =(SwipeRefreshLayout) getActivity().findViewById(R.id.swipeRefreshLayout);
        recycleViewWordPress =(RecyclerView) getActivity().findViewById(R.id.recycleViewWordPress);
        pb = (ProgressBar) getActivity().findViewById(R.id.loadingPanel);
        noFavtsTV = getActivity().findViewById(R.id.no_favt_text);

        Bundle bundel = this.getArguments();
        if(bundel != null){
            String title = bundel.getString("judul");
            String excerpt = bundel.getString("excerpt");
            String pict = bundel.getString("gambar");
            String url = bundel.getString("url");
            String konten = bundel.getString("konten");

            CategoriesModel post = new CategoriesModel();
            post.setJudul(title);
            post.setExcerpt(excerpt);
            post.setPostImg(pict);
            post.setPostURL(url);
            post.setContent(konten);

            typeForPosts = new ArrayList<CategoriesModel>();
            typeForPosts.add(post);

            recycleViewWordPress.setHasFixedSize(true);
            recycleViewWordPress.setLayoutManager(new LinearLayoutManager(getContext()));
            recycleViewWordPress.setNestedScrollingEnabled(false);
            mAdapter = new AdapterCategoryPosts(getContext(), typeForPosts, this);
            recycleViewWordPress.setAdapter(mAdapter);
            mAdapter.notifyDataSetChanged();
            pb.setVisibility(View.VISIBLE);
        }
        else {
            pb.setVisibility(View.GONE);
        }

        swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                swipeRefreshLayout.setRefreshing(false);
                pb.setVisibility(View.VISIBLE);
                recycleViewWordPress.setAdapter(mAdapter);
            }
        });

    }

    @Override
    public void onPostingSelected(int pos) {
        CategoriesModel click = typeForPosts.get(pos);

        content = click.getContent();
        gambar = click.getPostImg();
        judul = click.getJudul();
        url = click.getPostURL();

        Intent fullScreenIntent = new Intent(getContext(), DetailCategoryPost.class);
        fullScreenIntent.putExtra("content", content);
        fullScreenIntent.putExtra("gambar", gambar);
        fullScreenIntent.putExtra("judul", judul);
        fullScreenIntent.putExtra("url", url);
        startActivity(fullScreenIntent);
    }

    private void showNoFav(boolean show) {
        noFavtsTV.setVisibility(show ? View.VISIBLE : View.GONE); //jika data yang ditampilkan tidak ada, maka show noFavsTv
        recycleViewWordPress.setVisibility(show ? View.GONE : View.VISIBLE); //jika data yang ditampilkan tidak ada, maka don't show rV
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        menu.clear();
        inflater.inflate(R.menu.menu_search, menu);
        inflater.inflate(R.menu.menu_main, menu);

        // Associate searchable configuration with the SearchView
        SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
        searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
        searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity().getComponentName()));
        searchView.setMaxWidth(Integer.MAX_VALUE);

        // listening to search query text change
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                // filter recycler view when query submitted
                mAdapter.getFilter().filter(query);
                return true;
            }

            @Override
            public boolean onQueryTextChange(String query) {
                // filter recycler view when text is changed
                mAdapter.getFilter().filter(query);
                return true;
            }
        });

        super.onCreateOptionsMenu(menu,inflater);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_search) {
            return true;
        }

        //Menu
        if (id == R.id.action_settings) {
            //startActivity(new Intent(this, SettingsActivity.class));
            //return true;
        }
        else
        if (id == R.id.about_us) {
            //startActivity(new Intent(this, AboutUs.class));
            //return true;
        }

        return super.onOptionsItemSelected(item);
    }

}

AdapterCategory 帖子

public class AdapterCategoryPosts extends RecyclerView.Adapter<AdapterCategoryPosts.ViewHolder> implements Filterable {
    private Context context;
    private List<CategoriesModel> typeForPosts;
    private List<CategoriesModel> typeForPostsFiltered;
    private PostingAdapterListener listener;

    public AdapterCategoryPosts(Context context, List<CategoriesModel> typeForPosts, PostingAdapterListener listener) {
        this.context = context;
        this.typeForPosts = typeForPosts;
        this.typeForPostsFiltered = typeForPosts;
        this.listener = listener;
    }

    public interface PostingAdapterListener {
        void onPostingSelected(int pos);
    }

    @Override
    public AdapterCategoryPosts.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.postitem, parent, false);
        ViewHolder vh = new ViewHolder(view);
        return vh;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        holder.tempelData(typeForPosts.get(position), holder.getAdapterPosition());
        holder.viewCari(typeForPostsFiltered.get(position), holder.getAdapterPosition());
    }

    @Override
    public int getItemCount() {
        return typeForPostsFiltered.size();
    }

    @Override
    public Filter getFilter() {
        return new Filter() {
            @Override
            protected FilterResults performFiltering(CharSequence charSequence) {
                String charString = charSequence.toString();
                if (charString.isEmpty()) {
                    typeForPostsFiltered = typeForPosts;
                }
                else {
                    List<CategoriesModel> filteredList = new ArrayList<>();
                    for (CategoriesModel row : typeForPosts) {

                        // name match condition. this might differ depending on your requirement
                        // here we are looking for name or phone number match
                        if (row.getJudul().toLowerCase().contains(charString.toLowerCase())) {
                            filteredList.add(row);
                        }
                    }

                    typeForPostsFiltered = filteredList;
                }

                FilterResults filterResults = new FilterResults();
                filterResults.values = typeForPostsFiltered;
                return filterResults;
            }

            @Override
            protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
                typeForPostsFiltered = (ArrayList<CategoriesModel>) filterResults.values;
                notifyDataSetChanged();
            }
        };
    }


    public class ViewHolder extends RecyclerView.ViewHolder {
        // each data item is just a string in this case
        TextView title, excerpt;
        ImageView blog_image;
        private String TAG = "LoadImage";

        public ViewHolder(View v) {
            super(v);
            title = (TextView) v.findViewById(R.id.title);
            excerpt = (TextView) v.findViewById(R.id.excerpt);
            blog_image = (ImageView) v.findViewById(R.id.blog_image);

            v.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    // send selected contact in callback
                    if (listener != null){
                        int position = getAdapterPosition();
                        String name = typeForPostsFiltered.get(position).getJudul();

                        for (int i=0; i<typeForPosts.size(); i++){
                            if( name.equals(typeForPosts.get(i).getJudul()) ){
                                position = i;
                                break;
                            }
                        }

                        if(position != RecyclerView.NO_POSITION) {
                            listener.onPostingSelected(position);
                        }
                    }

                }
            });
        }

        public void tempelData(final CategoriesModel item, final int adapterPosition) {
            String judulx = item.getJudul();
            if(judulx != null){
                title.setText(Html.fromHtml(item.getJudul()));
            }

            String desk = item.getExcerpt();
            if(desk != null){
                if(desk.length() >= 254){
                    excerpt.setText(Html.fromHtml(desk.substring(0, 254)));
                }
                else {
                    excerpt.setText(Html.fromHtml(item.getExcerpt()));
                }
            }

            Glide.with(context).load(item.getPostImg()).thumbnail(0.2f).apply(fitCenterTransform()).thumbnail(0.2f).apply(fitCenterTransform()).into(blog_image);

        } // tempeldata


        public void viewCari(final CategoriesModel stori, final int adapterPosition) {

            final CategoriesModel posting = typeForPostsFiltered.get(adapterPosition);
            title.setText(posting.getJudul());
            Glide.with(context).load(posting.getPostImg()).into(blog_image);

        } //viewCari

    }
}

郵局

public class SumberPosts {

    public static String HOST="192.168.1.100";
    public static String HOST_URL="https://www.kisahmuslim.com/wp-json/";
    public static String AMP="amp/";
    public static String CHECK_URL="http://localhost/";
    public static String REPLACE_URL="http://"+HOST.trim()+"/";

    public static String TEMPLATE_FOR_TIME = "yyyy-MM-dd";


    public static String RESPONSE = "for_post";
    public static String RESPONSE_1 = "id";
    public static String RESPONSE_2 = "name";
    public static String RESPONSE_3 = "link";
    public static String RESPONSE_4 = "time";
    public static String RESPONSE_5 = "content";
    public static String RESPONSE_6 = "author";
    public static String RESPONSE_7 = "image";
    public static String RESPONSE_8 = "category";
}

添加依賴項如下:

implementation 'com.google.code.gson:gson:2.8.5'

如果你打算使用輸入的URL連接,如果不是假的設置doInput標志為true。 默認值為true

如果你打算使用輸出的URL連接,如果不是假的設置doOutput標志為true。 默認值為false

更改您的代碼

// Setup HttpURLConnection class to send and receive data from php and mysql
conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(READ_TIMEOUT);
conn.setConnectTimeout(CONNECTION_TIMEOUT);
conn.setRequestMethod("GET");

// setDoOutput to true as we recieve data from json file
conn.setDoOutput(true)

// open http connection
conn = (HttpURLConnection) new URL(url).openConnection();

// http method
conn.setRequestMethod("GET");

// enable read mode (always)
conn.setDoInput(true);

// disable write (for GET, HEAD, OPTIONS, TRACE)
conn.setDoOutput(false); 

protected void onPostExecute(String result)
{
    if ((result.startsWith("{") || result.startsWith("["))) {
        // JSON output
        JsonArray arr = gson.fromJson(content, (Type) JsonArray.class);
        if (arr != null) {
            for (int i = 0; i < arr.size(); i++) {
                JsonObject obj = (JsonObject) arr.get(i);
                if (obj != null) {
                    Log.i("TAG_:", "\n\n------------------------------------{ " + (i + 1) + " }");
                    if (obj.has("id")) {
                        Log.i("TAG_id:", obj.get("id").getAsString());
                    }
                    if (obj.has("count")) {
                        Log.i("TAG_count:", obj.get("count").getAsString());
                    }
                    if (obj.has("description")) {
                        Log.i("TAG_description:", obj.get("description").getAsString());
                    }
                    if (obj.has("link")) {
                        Log.i("TAG_link:", obj.get("link").getAsString());
                    }
                    if (obj.has("name")) {
                        Log.i("TAG_name:", obj.get("name").getAsString());
                    }
                    if (obj.has("slug")) {
                        Log.i("TAG_slug:", obj.get("slug").getAsString());
                    }
                    if (obj.has("taxonomy")) {
                        Log.i("TAG_taxonomy:", obj.get("taxonomy").getAsString());
                    }
                    if (obj.has("parent")) {
                        Log.i("TAG_parent:", obj.get("parent").getAsString());
                    }

                    if (obj.has("meta")) {
                        JsonArray arr1 = obj.get("meta").getAsJsonArray();
                        if (arr1 != null) {
                            for (int j = 0; j < arr1.size(); j++) {
                                JsonObject obj1 = (JsonObject) arr1.get(j);
                                if (obj1 != null) {
                                    Log.i("TAG_meta:", obj1.get("").getAsString());
                                }
                            }
                        }
                    }

                    if (obj.has("_links")) {

                        JsonObject obj2 = obj.get("_links").getAsJsonObject();
                        if (obj2 != null) {

                            if (obj2.has("self")) {
                                JsonArray arr2 = obj2.get("self").getAsJsonArray();
                                if (arr2 != null) {
                                    for (int j = 0; j < arr2.size(); j++) {
                                        JsonObject obj3 = arr2.get(j).getAsJsonObject();
                                        if (obj3 != null) {
                                            Log.i("TAG_self_href:", obj3.get("href").getAsString());
                                        }
                                    }
                                }
                            }

                            if (obj2.has("collection")) {
                                JsonArray arr3 = obj2.get("collection").getAsJsonArray();
                                if (arr3 != null) {
                                    for (int j = 0; j < arr3.size(); j++) {
                                        JsonObject obj4 = arr3.get(j).getAsJsonObject();
                                        if (obj4 != null) {
                                            Log.i("TAG_collection_href:", obj4.get("href").getAsString());
                                        }
                                    }
                                }
                            }

                            if (obj2.has("about")) {
                                JsonArray arr4 = obj2.get("about").getAsJsonArray();
                                if (arr4 != null) {
                                    for (int j = 0; j < arr4.size(); j++) {
                                        JsonObject obj5 = arr4.get(j).getAsJsonObject();
                                        if (obj5 != null) {
                                            Log.i("TAG_about_href:", obj5.get("href").getAsString());
                                        }
                                    }
                                }
                            }

                            if (obj2.has("up")) {
                                JsonArray arr5 = obj2.get("up").getAsJsonArray();
                                if (arr5 != null) {
                                    for (int j = 0; j < arr5.size(); j++) {
                                        JsonObject obj6 = arr5.get(j).getAsJsonObject();
                                        if (obj6 != null) {
                                            Log.i("TAG_up_embeddable:", obj6.get("embeddable").getAsString());
                                            Log.i("TAG_up_href:", obj6.get("href").getAsString());
                                        }
                                    }
                                }
                            }

                            if (obj2.has("wp:post_type")) {
                                JsonArray arr6 = obj2.get("wp:post_type").getAsJsonArray();
                                if (arr6 != null) {
                                    for (int j = 0; j < arr6.size(); j++) {
                                        JsonObject obj7 = arr6.get(j).getAsJsonObject();
                                        if (obj7 != null) {
                                            Log.i("TAG_wp:post_type_href:", obj7.get("href").getAsString());
                                        }
                                    }
                                }
                            }

                            if (obj2.has("curies")) {
                                JsonArray arr7 = obj2.get("curies").getAsJsonArray();
                                if (arr7 != null) {
                                    for (int j = 0; j < arr7.size(); j++) {
                                        JsonObject obj8 = arr7.get(j).getAsJsonObject();
                                        if (obj8 != null) {
                                            Log.i("TAG_curies_name:", obj8.get("name").getAsString());
                                            Log.i("TAG_curies_href:", obj8.get("href").getAsString());
                                            Log.i("TAG_curies_templated:", obj8.get("templated").getAsString());
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }           
        }
    }
}

結果:

TAG_:: ------------------------------------{ 1 }
TAG_id:: 12
TAG_count:: 57
TAG_link:: https://kisahmuslim.com/category/kisah-nyata/biografi-ulama
TAG_name:: Biografi Ulama
TAG_slug:: biografi-ulama
TAG_taxonomy:: category
TAG_parent:: 29
TAG_self_href:: https://kisahmuslim.com/wp-json/wp/v2/categories/12
TAG_collection_href:: https://kisahmuslim.com/wp-json/wp/v2/categories
TAG_about_href:: https://kisahmuslim.com/wp-json/wp/v2/taxonomies/category
TAG_up_embeddable:: true
TAG_up_href:: https://kisahmuslim.com/wp-json/wp/v2/categories/29
TAG_wp:post_type_href:: https://kisahmuslim.com/wp-json/wp/v2/posts?categories=12
TAG_curies_name:: wp
TAG_curies_href:: https://api.w.org/{rel}
TAG_curies_templated:: true

TAG_:: ------------------------------------{ 2 }
TAG_id:: 26
TAG_count:: 8
TAG_link:: https://kisahmuslim.com/category/download
TAG_name:: Download
TAG_slug:: download
TAG_taxonomy:: category
TAG_parent:: 0
TAG_self_href:: https://kisahmuslim.com/wp-json/wp/v2/categories/26
TAG_collection_href:: https://kisahmuslim.com/wp-json/wp/v2/categories
TAG_about_href:: https://kisahmuslim.com/wp-json/wp/v2/taxonomies/category
TAG_wp:post_type_href:: https://kisahmuslim.com/wp-json/wp/v2/posts?categories=26
TAG_curies_name:: wp
TAG_curies_href:: https://api.w.org/{rel}
TAG_curies_templated:: true

// saya sengaja tidak tampilkan semua disini untuk menghemat ruang.

TAG_:: ------------------------------------{ 10 }
TAG_id:: 29
TAG_count:: 255
TAG_link:: https://kisahmuslim.com/category/kisah-nyata
TAG_name:: Kisah Nyata
TAG_slug:: kisah-nyata
TAG_taxonomy:: category
TAG_parent:: 0
TAG_self_href:: https://kisahmuslim.com/wp-json/wp/v2/categories/29
TAG_collection_href:: https://kisahmuslim.com/wp-json/wp/v2/categories
TAG_about_href:: https://kisahmuslim.com/wp-json/wp/v2/taxonomies/category
TAG_wp:post_type_href:: https://kisahmuslim.com/wp-json/wp/v2/posts?categories=29
TAG_curies_name:: wp
TAG_curies_href:: https://api.w.org/{rel}
TAG_curies_templated:: true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM