2

我使用 jquery 通过 ajax 接收来自 php 脚本的文本,如下所示:

$.ajax({
        dataType: 'json',
           url: 'someURL.com',
                success:function(result){
                    json = JSON.parse(result.rgraph);
})

result.rgraph 在 php 中发送为:

$arr = array( 'actiondata'=> 'some info here',  'rgraph' => $this->_rgraph() );
$jsonTable = json_encode($arr);

return $jsonTable;

其中 $this->_rgraph() 只是一个返回的函数:

return '{ id:“0_0”,名称:“类别”,孩子:[{ id:“0_1”,名称:“业务服务”,数据:{关系:“”},孩子:[{ id:“0_2” ,名称:“H-FARM Ventures”,数据:{关系:“”},儿童:[] }]},{ id:“0_3”,名称:“原因”,数据:{关系:“”},儿童:[{ id:“0_4”,名称:“StartupVisa”,数据:{关系:“”},孩子:[] }]},{ id:“0_5”,名称:“社区”,数据:{关系: "" },children: [{ id: "0_6", name: "Different Solutions", data: { relationship: "" }, children: [] }]},{ id: "0_7", name: "News/媒体网站”,数据:{关系:“”},儿童:[{ id:“0_8”,名称:“iSpazio”,数据:{ 关系:“”},儿童:[] }]},{ id:“0_9”,名称:“非营利组织”,数据:{关系:“”},儿童:[{ id:“0_10”,名称:“Indigeni Digitali”,数据:{ 关系:“”},儿童:[] }]},{ id:“0_11”,名称:“网站”,数据:{ 关系:“”},儿童:[{ id:“0_12”,名称:“Hot Pin Venezuela”,数据:{关系:“”},儿童:[]},{ id:“0_13”,名称:“El Chiguire Bipolar”,数据:{关系:“ " }, 孩子: [] }]}], 数据: { 关系: "一些文本" }}';{ 关系:“”},孩子:[] }]},{ id:“0_11”,名称:“网站”,数据:{ 关系:“”},孩子:[{ id:“0_12”,名称:“热销委内瑞拉”,数据:{ 关系:“”},儿童:[] },{ id:“0_13”,名称:“El Chiguire Bipolar”,数据:{关系:“”},儿童:[] }] }],数据:{关系:“一些文本”}}';{ 关系:“”},孩子:[] }]},{ id:“0_11”,名称:“网站”,数据:{ 关系:“”},孩子:[{ id:“0_12”,名称:“热销委内瑞拉”,数据:{ 关系:“”},儿童:[] },{ id:“0_13”,名称:“El Chiguire Bipolar”,数据:{关系:“”},儿童:[] }] }],数据:{关系:“一些文本”}}';

然后我在图表引擎中使用这个 var (json),我的想法是,如果我将 _rhraph() 返回的字符串复制到它工作的 javascript 上的 ajax 硬编码上,它会将字符串作为对象获取并绘制 chard。但是,如果让脚本从 php 脚本中检索 var,您可能会认为这个 var 作为文本到达json = JSON.parse(result.rgraph); 因为如果我在 json 上发出警报,我会看到内容而不是 Object 对象。所以此时我将代码更改为:json = JSON.parse(result.rgraph);

但这给了我一个错误:Uncaught SyntaxError: Unexpected token i。我不知道发生了什么,似乎 json var 的格式不正确,但是为什么当我对 var 进行硬编码时它可以工作?有任何想法吗?

4

4 回答 4

1

您需要引用您的密钥以获得有效的 JSON

于 2013-01-25T17:22:15.903 回答
1

那不是有效的 JSON。必须引用键名,例如:

{ "id" : ...
于 2013-01-25T17:22:33.873 回答
1

只需将所有 JSON 键放在引号中(“id”、“etc”)...

于 2013-01-25T17:22:53.183 回答
0

我认为你必须用以下方式解析它jQuery.parseJSON()

json = jQuery.parseJSON(result);
于 2013-01-25T17:26:48.720 回答