SyntaxError:位于JSON中的意外标记T.

时间:2017-03-28 17:35:12

标签: json parsing jsonp

当我尝试解析下面的JSON内容时,我得到了这个异常

SyntaxError: Unexpected token T in JSON at position 236
    at JSON.parse (<anonymous>)
    at AppComponent.populatePivotGrid (app.component.js:18)
    at _View_AppComponent0._handle_click_3_0 (/AppModule/AppComponent/component.ngfactory.js:76)
    at eval (core.umd.js:9437)
    at eval (platform-browser.umd.js:1525)
    at eval (platform-browser.umd.js:1638)
    at ZoneDelegate.invoke (zone.js:232)
    at Object.onInvoke (core.umd.js:6206)
    at ZoneDelegate.invoke (zone.js:231)
    at Zone.runGuarded (zone.js:128)

JSon内容:

&#13;
&#13;
var temp = '{"columns":"","measures":"[Measures].[Sold_Dollars],[Measures].[Sold_Units]","rows":"[Item_Id].[Item_Id],[Item_Desc].[Item_Desc]","metadata":{"cube":{"dimensions":[{"hierarchies":[{"levels":[{"memberProvider":"function (item) { return \"Total Rtlr Name\"; }","caption":"Total Rtlr Name","name":"TotalRtlr_Name"},{"memberProvider":"function (item) { return item.Rtlr_Name; }","caption":"Rtlr Name","name":"Rtlr_Name"}],"caption":"Rtlr Name","name":"Rtlr_Name"}],"caption":"Rtlr Name","name":"Rtlr_Name"},{"hierarchies":[{"levels":[{"memberProvider":"function (item) { return \"Total Item Id\"; }","caption":"Total Item Id","name":"TotalItem_Id"},{"memberProvider":"function (item) { return item.Item_Id; }","caption":"Item Id","name":"Item_Id"}],"caption":"Item Id","name":"Item_Id"}],"caption":"Item Id","name":"Item_Id"},{"hierarchies":[{"levels":[{"memberProvider":"function (item) { return \"Total Item Desc\"; }","caption":"Total Item Desc","name":"TotalItem_Desc"},{"memberProvider":"function (item) { return item.Item_Desc; }","caption":"Item Desc","name":"Item_Desc"}],"caption":"Item Desc","name":"Item_Desc"}],"caption":"Item Desc","name":"Item_Desc"}],"measuresDimension":{"measures":[{"aggregator":"function(items, cellMetadata) { var sum = 0; $.each(items, function(index, item) { sum += item.Sold_Dollars; } );   $.ig.regional.defaults.currencyMaxDecimals = 0;   $.ig.regional.defaults.currencyMinDecimals = 0;   return $.ig.formatter(parseFloat(sum), \"number\", \"#########0\"); }","caption":"Sold Dollars","name":"Sold_Dollars"},{"aggregator":"function(items, cellMetadata) { var sum = 0; $.each(items, function(index, item) { sum += item.Sold_Units; } );   $.ig.regional.defaults.currencyMaxDecimals = 0;   $.ig.regional.defaults.currencyMinDecimals = 0;   return $.ig.formatter(parseFloat(sum), \"number\", \"#########0\"); }","caption":"Sold Units","name":"Sold_Units"},{"aggregator":"function(items, cellMetadata) { var sum = 0; $.each(items, function(index, item) { sum += item.Rtlr_Price; } );   $.ig.regional.defaults.currencyMaxDecimals = 0;   $.ig.regional.defaults.currencyMinDecimals = 0;   return $.ig.formatter(parseFloat(sum), \"number\", \"#########0\"); }","caption":"Rtlr Price","name":"Rtlr_Price"},{"aggregator":"function(items, cellMetadata) { var sum = 0; $.each(items, function(index, item) { sum += item.Rtlr_Cost; } );   $.ig.regional.defaults.currencyMaxDecimals = 0;   $.ig.regional.defaults.currencyMinDecimals = 0;   return $.ig.formatter(parseFloat(sum), \"number\", \"#########0\"); }","caption":"Rtlr Cost","name":"Rtlr_Cost"}],"name":"Measures"},"caption":"Report substr Sample Recreated Diff World","name":"Report substr Sample Recreated Diff World"}}}';
      
	  var test = JSON.parse(temp);//it breaks here with the above mentioned exception/error
&#13;
&#13;
&#13;

此JSON内容有什么问题?

1 个答案:

答案 0 :(得分:0)

您需要使用双\来转义引号。

所以代替:... return \"Total Rtlr Name\"; ...

将其写为:... return \\\"Total Rtlr Name\\\"; ...

希望有所帮助。