Codeigniter - comment passer JSON en tant que paramètre à la vue

Je suis en train de construire un codeigniter/applications web php.
Je suis en train de passer d'un objet JSON à partir du contrôleur à la vue lorsque la vue est chargé, d'une manière qui sera accessible vers le javascript.

Le JSON se présente comme suit:

{
    "event": {
        "id": "1",
        "name": "Some name",
        "description": "Some description",
        "address": "1 Main st."
    },
    "members": {
        "others": [
            {
                "id": "26",
                "name": "Brad Black"
            },
            {
                "id": "27",
                "name": "Bill Blue"
            }
        ],
        "current": {
            "id": "1",
            "name": "Jill White"
        }
    }
}

Le contrôleur de code se présente comme suit:

public function index()
{
    $some_data = $this->Some_model->get_some_data();

    $some_data = json_encode($some_data);

    $data = array (
            'some_data' => $some_data
    );

    $this->load->view('some_view',$data);
}

La vue (some_view) code se présente comme suit:

<script src="path/to/scripts/some_script.js" type="text/javascript"></script>

<script type="text/javascript">

    some_data = "<?php echo $some_data?>";

</script>

<div class="main">
</div>

Le javascript (some_script) code se présente comme suit:

var some_data;

$(document).ready(function(){

    some_data = $.parseJSON(some_data);
});

Le problème est que depuis l'objet JSON est envoyé comme une chaîne de caractères (après json_encode) il y a des caractères tels que { et citations comme partie de, qui le javascript n'aime pas quand je suis en l'assignant à un var (some_data = "";). J'ai essayé d'utiliser aussi mais il ne fonctionne pas aussi bien.

J'ai essayé de faire un tas de choses qui n'ont pas de travail, afin d'avancer, j'ai temporairement fini par remplacer le " dans le contrôleur
$data['some_data'] = str_replace('"', """, $some_data);

public function index()
{
    $some_data = $this->Some_model->get_some_data();

    $some_data = json_encode($some_data);

    $data = array (
            'some_data' => str_replace('"', "&quot;", $some_data);
    );

    $this->load->view('some_view',$data);
}

et de remplacer le "retour" à l'intérieur du javascript
some_data = some_data.replace(/"/g, '"');

var some_data;

$(document).ready(function(){

    event_data = event_data.replace(/&quot;/g, '"');
    some_data = $.parseJSON(some_data);
});

C'est moche et je suis à la recherche d'une meilleure solution.

Tous les pointeurs seront grandement appréciés.

Mise à jour!
Problème résolu, ressemble guillemets supplémentaires ont été la rupture des choses.

La solution est en ligne avec mohan.gade réponse:

Contrôleur:

public function index()
{
    $some_data = $this->Some_model->get_some_data();

    $some_data = json_encode($some_data);

    $data = array (
            'some_data' => $some_data;
    );

    $this->load->view('some_view',$data);
}

Vue:

    some_data = <?php echo $some_data?>;

</script>

OriginalL'auteur user898836 | 2012-12-05