Q:

Como tratar uma String em formato de JSON? 

Digamos que eu receba o seguinte conteúdo que fique armazenado em uma String:
{
    "client_id": 1580,
    "videos": 4,
    "remote_urls": [{
            "url": "rtsp://aniceurl.com"
        },
        {
            "url": "rtsp://aniceurl.com"
        },
        {
            "url": "rtsp://aniceurl.com"
        },
        {
            "url": "rtsp://aniceurl.com"
        }
    ],
    "action": "start"
}

Reconheço o JSON e tudo mais, mas ele está salvo numa String, não num JSONObject.  Gostaria de saber como eu posso extrair as informações dele e armazenar em variáveis/arrays, para eu poder trabalhar com esses dados. 
[]'s! 

A:

você pode usar o Gson da google, é super simples, é só criar uma classe que tenha exatamente os mesmos atributos do json e fazer o parser, olha o exemplo que fiz com seu json, apenas utilizando o método fromJson(meuJson, MinhaClasse.class):
ClienteDTO
import java.util. List;

public class ClienteDTO {
    private Integer client_id;
    private Integer videos;
    private List<RemoteUrlDTO> remote_urls;
    private String action;

    public Integer getClient_id() {
        return client_id;
    }
    public void setCliente_id(Integer cliente_id) {
        this.client_id = cliente_id;
    }
    public Integer getVideos() {
        return videos;
    }
    public void setVideos(Integer videos) {
        this.videos = videos;
    }
    public List<RemoteUrlDTO> getRemote_urls() {
        return remote_urls;
    }
    public void setRemote_urls(List<RemoteUrlDTO> remote_urls) {
        this.remote_urls = remote_urls;
    }
    public String getAction() {
        return action;
    }
    public void setAction(String action) {
        this.action = action;
    }
    @Override
    public String toString() {
        return "ClienteDTO [cliente_id=" + client_id + ", videos=" + videos + ", remote_urls=" + remote_urls
                + ", action=" + action + "]";
    }
}

RemoteUrlDTO
public class RemoteUrlDTO {
    private String url;

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    @Override
    public String toString() {
        return "RemoteUrlDTO [url=" + url + "]";
    }
}

Classe para testar e demonstrar o GSON:
import com.google.gson. Gson;

public class Main {
    public static void main(String[] args) {
        Gson g = new Gson();
        String json = "{\n" +
                "    \"client_id\": 1580,\n" +
                "    \"videos\": 4,\n" +
                "    \"remote_urls\": [{\n" +
                "            \"url\": \"rtsp://aniceurl.com\"\n" +
                "        },\n" +
                "        {\n" +
                "            \"url\": \"rtsp://aniceurl.com\"\n" +
                "        },\n" +
                "        {\n" +
                "            \"url\": \"rtsp://aniceurl.com\"\n" +
                "        },\n" +
                "        {\n" +
                "            \"url\": \"rtsp://aniceurl.com\"\n" +
                "        }\n" +
                "    ],\n" +
                "    \"action\": \"start\"\n" +
                "}\n" +
                "\n";

        ClienteDTO clienteDTO = g.fromJson(json, ClienteDTO.class);

        System.out.println(clienteDTO);
    }
}

Resultado após execução do teste
ClienteDTO [cliente_id=1580, videos=4, remote_urls=[RemoteUrlDTO [url=rtsp://aniceurl.com], RemoteUrlDTO [url=rtsp://aniceurl.com], RemoteUrlDTO [url=rtsp://aniceurl.com], RemoteUrlDTO [url=rtsp://aniceurl.com]], action=start]

