2013-10-28 63 views
1

下面的代碼從一個JSON字符串創建了一個迷你餅圖:傳遞對象作爲jQuery的迷你圖偏移

//Display Visitor Screen Size Stats 

$.getJSON('models/ucp/traffic/traffic_display_bos.php', 
{ 
    type: 'ss', 
    server: server, 
    api: api, 
    ip: ip, 
}, 
function(data) 
{ 
    //alert(data.screens); 
    $('#traffic_bos_ss').sparkline(data.views, 
    { 
     type: "pie", 
     height: "100%", 
     tooltipFormat: "{{offset:offset}} - {{value}}",  
     tooltipValueLookups: 
     { 
      'offset': data.screens; 
     } 
    }); 
}); 

餅圖創建成功,但是,我在與分配正確的標籤就麻煩偏移量。這就是所謂的JSON字符串如下:

{"screens":"{ 0: '1220x1080', 1: '1620x1080', 2: '1920x1080' }", "views":[2, 2, 61]} 

我想它,以便屏幕的JSON的插入偏移(data.screens)。它應該變成:

tooltipValueLookups: 
{ 
    'offset': { 0: '1220x1080', 1: '1620x1080', 2: '1920x1080' }  
} 

這怎麼能實現?

回答

1

你的JSON字符串:

{"screens":"{ 0: '1220x1080', 1: '1620x1080', 2: '1920x1080' }", "views":[2, 2, 61]} 

不正確,爲 「屏」 是一個字符串值(即,它具有值「{0: '1220x1080',1: '1620x1080',2:' 1920x1080'}「)。你想刪除引號,以便它是一個具有3個值對的對象,即。

{"screens": { "0": '1220x1080', "1": '1620x1080', "2": '1920x1080' }, "views":[2, 2, 61]} 

請看下面的代碼,我已經投入了fiddle這個工作的一個例子:再次

var values = {"screens": { 0: '1220x1080', 1: '1620x1080', 2: '1920x1080' }, "views":[2, 2, 61]}; 

$('#test').sparkline(values.views, 
           { 
            type: "pie", 
            height: "100%", 
            tooltipFormat: '{{offset:offset}} - {{value}}',  
            tooltipValueLookups: 
            { 
             'offset': values.screens 
            } 
           }); 
+0

謝謝,新鮮。 –

+0

很高興我能幫助鮑勃。 –

+0

我再次遇到問題。所以上面的代碼工作正常,但JSON現在是無效的。它期望一個字符串而不是0,1和2.因此,getJSON現在不起作用。我如何使JSON有效,但也使它與偏移量一起工作? –