Para poder rellenar un recyclerview con datos que provienen de un servicio web se necesita una librería capaz de parsear estos datos. Para este ejemplo se utilizarán datos del la librería gratuita https://www.themoviedb.org la cual ofrece peticiones tanto POST como GET de películas. Una vez registrado y con la API_KEY creada se pueden realizar peticiones de este

{
  "page": 1,
  "total_results": 19790,
  "total_pages": 990,
  "results": [
    {
      "vote_count": 1298,
      "id": 338952,
      "video": false,
      "vote_average": 7.1,
      "title": "Fantastic Beasts: The Crimes of Grindelwald",
      "popularity": 332.518,
      "poster_path": "/uyJgTzAsp3Za2TaPiZt2yaKYRIR.jpg",
      "original_language": "en",
      "original_title": "Fantastic Beasts: The Crimes of Grindelwald",
      "genre_ids": [
        10751,
        14,
        12
      ],
      "backdrop_path": "/xgbeBCjmFpRYHDF7tQ7U98EREWp.jpg",
      "adult": false,
      "overview": "Gellert Grindelwald has escaped imprisonment and has begun gathering followers to his cause—elevating wizards above all non-magical beings. The only one capable of putting a stop to him is the wizard he once called his closest friend, Albus Dumbledore. However, Dumbledore will need to seek help from the wizard who had thwarted Grindelwald once before, his former student Newt Scamander, who agrees to help, unaware of the dangers that lie ahead. Lines are drawn as love and loyalty are tested, even among the truest friends and family, in an increasingly divided wizarding world.",
      "release_date": "2018-11-14"
    },
    {
      "vote_count": 2381,
      "id": 335983,
      "video": false,
      "vote_average": 6.5,
      "title": "Venom",
      "popularity": 283.45,
      "poster_path": "/2uNW4WbgBXL25BAbXGLnLqX71Sw.jpg",
      "original_language": "en",
      "original_title": "Venom",
      "genre_ids": [
        878
      ],
      "backdrop_path": "/VuukZLgaCrho2Ar8Scl9HtV3yD.jpg",
      "adult": false,
      "overview": "When Eddie Brock acquires the powers of a symbiote, he will have to release his alter-ego \"Venom\" to save his life.",
      "release_date": "2018-10-03"
    },
    {
      "vote_count": 68,
      "id": 507569,
      "video": false,
      "vote_average": 5.9,
      "title": "The Seven Deadly Sins: Prisoners of the Sky",
      "popularity": 238.391,
      "poster_path": "/r6pPUVUKU5eIpYj4oEzidk5ZibB.jpg",
      "original_language": "en",
      "original_title": "劇場版 七つの大罪 天空の囚われ人",
      "genre_ids": [
        28,
        12,
        14,
        16
      ],
      "backdrop_path": "/uKwOX7MtKlAaGeCQe6c4jc1vZpj.jpg",
      "adult": false,
      "overview": "Traveling in search of the rare ingredient, “sky fish”  Meliodas and Hawk arrive at a palace that floats above the clouds. The people there are busy preparing a ceremony, meant to protect their home from a ferocious beast that awakens once every 3,000 years. But before the ritual is complete, the Six Knights of Black—a Demon Clan army—removes the seal on the beast, threatening the lives of everyone in the Sky Palace.",
      "release_date": "2018-08-18"
    },
    {
      "vote_count": 2339,
      "id": 353081,
      "video": false,
      "vote_average": 7.2,
      "title": "Mission: Impossible - Fallout",
      "popularity": 219.801,
      "poster_path": "/AkJQpZp9WoNdj7pLYSj1L0RcMMN.jpg",
      "original_language": "en",
      "original_title": "Mission: Impossible - Fallout",
      "genre_ids": [
        28,
        53,
        12
      ],
      "backdrop_path": "/aw4FOsWr2FY373nKSxbpNi3fz4F.jpg",
      "adult": false,
      "overview": "When an IMF mission ends badly, the world is faced with dire consequences. As Ethan Hunt takes it upon himself to fulfill his original briefing, the CIA begin to question his loyalty and his motives. The IMF team find themselves in a race against time, hunted by assassins while trying to prevent a global catastrophe.",
      "release_date": "2018-07-13"
    },
    {
      "vote_count": 1334,
      "id": 424694,
      "video": false,
      "vote_average": 8.2,
      "title": "Bohemian Rhapsody",
      "popularity": 187.417,
      "poster_path": "/lHu1wtNaczFPGFDTrjCSzeLPTKN.jpg",
      "original_language": "en",
      "original_title": "Bohemian Rhapsody",
      "genre_ids": [
        18,
        10402
      ],
      "backdrop_path": "/pbXgLEYh8rlG2Km5IGZPnhcnuSz.jpg",
      "adult": false,
      "overview": "Singer Freddie Mercury, guitarist Brian May, drummer Roger Taylor and bass guitarist John Deacon take the music world by storm when they form the rock 'n' roll band Queen in 1970. Hit songs become instant classics. When Mercury's increasingly wild lifestyle starts to spiral out of control, Queen soon faces its greatest challenge yet – finding a way to keep the band together amid the success and excess.",
      "release_date": "2018-10-24"
    },
    {
      "vote_count": 147,
      "id": 360920,
      "video": false,
      "vote_average": 6.2,
      "title": "The Grinch",
      "popularity": 163.686,
      "poster_path": "/rWQVj6Z8kPdsbt7XPjVBCltxq90.jpg",
      "original_language": "en",
      "original_title": "The Grinch",
      "genre_ids": [
        16,
        10751,
        35,
        14
      ],
      "backdrop_path": "/zRDkmww7Bu11wiz2g86RxSreiY4.jpg",
      "adult": false,
      "overview": "The Grinch hatches a scheme to ruin Christmas when the residents of Whoville plan their annual holiday celebration.",
      "release_date": "2018-11-08"
    },
    {
      "vote_count": 1546,
      "id": 439079,
      "video": false,
      "vote_average": 5.7,
      "title": "The Nun",
      "popularity": 136.215,
      "poster_path": "/sFC1ElvoKGdHJIWRpNB3xWJ9lJA.jpg",
      "original_language": "en",
      "original_title": "The Nun",
      "genre_ids": [
        27,
        9648,
        53
      ],
      "backdrop_path": "/fgsHxz21B27hOOqQBiw9L6yWcM7.jpg",
      "adult": false,
      "overview": "When a young nun at a cloistered abbey in Romania takes her own life, a priest with a haunted past and a novitiate on the threshold of her final vows are sent by the Vatican to investigate. Together they uncover the order’s unholy secret. Risking not only their lives but their faith and their very souls, they confront a malevolent force in the form of the same demonic nun that first terrorized audiences in “The Conjuring 2” as the abbey becomes a horrific battleground between the living and the damned.",
      "release_date": "2018-09-05"
    },
    {
      "vote_count": 9532,
      "id": 299536,
      "video": false,
      "vote_average": 8.3,
      "title": "Avengers: Infinity War",
      "popularity": 121.664,
      "poster_path": "/7WsyChQLEftFiDOVTGkv3hFpyyt.jpg",
      "original_language": "en",
      "original_title": "Avengers: Infinity War",
      "genre_ids": [
        12,
        878,
        28,
        14
      ],
      "backdrop_path": "/lmZFxXgJE3vgrciwuDib0N8CfQo.jpg",
      "adult": false,
      "overview": "As the Avengers and their allies have continued to protect the world from threats too large for any one hero to handle, a new danger has emerged from the cosmic shadows: Thanos. A despot of intergalactic infamy, his goal is to collect all six Infinity Stones, artifacts of unimaginable power, and use them to inflict his twisted will on all of reality. Everything the Avengers have fought for has led up to this moment - the fate of Earth and existence itself has never been more uncertain.",
      "release_date": "2018-04-25"
    },
    {
      "vote_count": 49,
      "id": 404368,
      "video": false,
      "vote_average": 7.4,
      "title": "Ralph Breaks the Internet",
      "popularity": 121.254,
      "poster_path": "/m110vLaDDOCca4hfOcS5mK5cDke.jpg",
      "original_language": "en",
      "original_title": "Ralph Breaks the Internet",
      "genre_ids": [
        10751,
        16
      ],
      "backdrop_path": "/ivhK1NjnFji6lD5dkAThSzd3Mgq.jpg",
      "adult": false,
      "overview": "Taking place six years following the events of the first film, the story will center on Ralph's adventures in the Internet data space when a Wi-Fi router gets plugged into the arcade as he must find a replacement part to fix Sugar Rush.",
      "release_date": "2018-11-20"
    }
  ]
}

Para poder evaluar un dato en formato JSON lo primero es importar una librería que permita peticiones y parseos de este tipo. En este ejemplo se utilizará Volley

implementation 'com.android.volley:volley:1.1.1'

Adicionalmente en el fichero del manifestante se deben dar permisos de internet para poder realizar las peticiones correctamente

<uses-permission android:name="android.permission.INTERNET"/>
package com.system.develop.recyclerjson;

public class Pelicula {

    String titulo, imagen;
    Double valoracion;

    public Pelicula(String titulo, String imagen, Double valoracion) {
        this.titulo = titulo;
        this.imagen = imagen;
        this.valoracion = valoracion;
    }

    public String getTitulo() {
        return titulo;
    }

    public String getImagen() {
        return imagen;
    }

    public Double getValoracion() {
        return valoracion;
    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/recyclerJSON"/>

</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/imagenItem"
        android:layout_width="100dp"
        android:layout_height="100dp" />

    <TextView
        android:id="@+id/nombreItem"
        android:layout_width="0dp"
        android:layout_weight="0.5"
        android:layout_height="match_parent"
        android:hint="asd"
        android:gravity="center"
        />

    <TextView
        android:layout_margin="20dp"
        android:id="@+id/valoracionItem"
        android:layout_width="0dp"
        android:layout_weight="0.3"
        android:gravity="center"
        android:layout_height="match_parent"
        android:drawableRight="@android:drawable/star_on" />

</LinearLayout>
package com.system.develop.recyclerjson;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;


import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    RecyclerView recyclerView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        recyclerView = findViewById(R.id.recyclerJSON);
        ArrayList peliculas = new ArrayList();
        obtenerDatos(peliculas);
        AdaptadorRecycler adaptadorRecycler = new AdaptadorRecycler(this, peliculas);
        recyclerView.setAdapter(adaptadorRecycler);
        recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext(), LinearLayoutManager.VERTICAL, false));
        DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(getApplicationContext(), DividerItemDecoration.VERTICAL);
        recyclerView.addItemDecoration(dividerItemDecoration);
    }

    private void obtenerDatos(final ArrayList lista) {
        String url = "https://api.themoviedb.org/3/movie/popular?page=1&language=en-US&api_key=4ef66e12cddbb8fe9d4fd03ac9632f6e";

        JsonObjectRequest peticionJSON = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                try {
                    JSONArray arrayJSON = response.getJSONArray("results");
                    Log.v("test",arrayJSON.toString());

                    for (int i=0;i<arrayJSON.length();i++){

                        JSONObject resultado = arrayJSON.getJSONObject(i);
                        String titulo = (String) resultado.get("title");
                        String imagen = "https://image.tmdb.org/t/p/w500/"+(String) resultado.get("poster_path");
                        Double valoracion = (Double) resultado.get("vote_average");
                        Pelicula p = new Pelicula(titulo,imagen,valoracion);
                        lista.add(p);
                    }

                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

            }
        });

        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(peticionJSON);
    }
}

En la clase donde se rellena el recyclerview se realiza la petición. Para poder hacerlo se utiliza un objeto de tipo JSonObjectRequest al cual se le pasan Método de petición, url de los datos, datos que incluye la query de la petición (si los tiene), listener con respuesta correcta y listones con respuesta incorrecta. En el listener de respuesta correcta se evalúa el objeto de tipo json obtenido.

package com.system.develop.recyclerjson;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.squareup.picasso.Picasso;

import java.util.List;

public class AdaptadorRecycler extends RecyclerView.Adapter<AdaptadorRecycler.Holder> {

    Context context;
    List<Pelicula> lista;

    public AdaptadorRecycler(Context context, List<Pelicula> lista) {
        this.context = context;
        this.lista = lista;
    }

    @NonNull
    @Override
    public Holder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View v = LayoutInflater.from(context).inflate(R.layout.item_recycler,viewGroup,false);
        return new Holder(v);
    }

    @Override
    public void onBindViewHolder(@NonNull Holder holder, int i) {
        holder.getNombre().setText(lista.get(i).getTitulo());
        holder.getValoracion().setText(String.valueOf(lista.get(i).getValoracion()));
        Picasso.with(context).load(lista.get(i).imagen).into(holder.getImageView());
    }

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

    class Holder extends RecyclerView.ViewHolder{

        ImageView imageView;
        TextView nombre, valoracion;

        public Holder(@NonNull View itemView) {
            super(itemView);
            imageView = itemView.findViewById(R.id.imagenItem);
            nombre = itemView.findViewById(R.id.nombreItem);
            valoracion = itemView.findViewById(R.id.valoracionItem);
        }

        public ImageView getImageView() {
            return imageView;
        }

        public TextView getNombre() {
            return nombre;
        }

        public TextView getValoracion() {
            return valoracion;
        }
    }
}

Para poder representar las imágenes se utiliza la librería Picasso