2015-07-30 4 views
-1

Я пытаюсь использовать JSON.parse для возврата объекта javascript строки ниже. Тем не менее, я получаю сообщение «Uncaught SyntaxError: Неожиданный токен e».Uncaught SyntaxError: Неожиданный токен e при попытке разбора строки JSON

{ 
    "__type": "HRIS.oHRData, HRIES, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", 
    "TPDDListValue": new Ajax.Web.DataSet([]), 
    "DPDDListValue": new Ajax.Web.DataSet([]), 
    "TopDataValue": new Ajax.Web.DataSet([ 
     new Ajax.Web.DataTable([ 
      ["HID","System.String"], 
      ["HFrName0","System.String"], 
      ["HFtName0","System.String"], 
      ["HGFName0","System.String"], 
      ["HFmName0","System.String"], 
      ["TID","System.Byte"] 
     ],[ 
      ["123456789","ABCD1","ABCD2","ABCD3 ","ABCD4",2] 
     ]) 
    ]), 
    "DownDataValue": new Ajax.Web.DataSet([]), 
    "MenuDataValue": new Ajax.Web.DataSet([]), 
    "SearchReturnValue": new Ajax.Web.DataSet([]), 
    "Result": null, 
    "NewID": "NoID", 
    "AffectedRecords": 0 
} 

Я использую этот код:

var text= 'the json string here'; 

var obj=JSON.parse(text); 

Я думаю, что проблема в том, что JSON не распознает тип нового Ajax.Web.DataSet ([])

Как может Я решаю этот вопрос, пожалуйста?

Любая идея оценивается.

Большое спасибо,

+4

Это недопустимо JSON. От куда это? Каков контекст; зачем вам разбирать его? – Pointy

+0

Спасибо за ваш ответ. Это совершенно правильный формат json. проблема связана с новым Ajax.Web.DataSet ([]), который не распознается JSON. – Nai

+3

это, безусловно, ** нет ** правильный JSON формат. В синтаксисе JSON нет ключевого слова 'new'. [Вот ссылка] (http://json.org/); проверьте сами. JSON - это формат обмена данными, который вообще не имеет семантики выполнения; 'new' просто не имеет смысла. – Pointy

ответ

1

Если вы на самом деле просто сбросив, что в ваш код, вам не нужны кавычки и вам не нужно разобрать его:

var theObject = { 
    "__type": "HRIS.oHRData, HRIES, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", 
    "TPDDListValue": new Ajax.Web.DataSet([]), 
    "DPDDListValue": new Ajax.Web.DataSet([]), 
    "TopDataValue": new Ajax.Web.DataSet([ 
     new Ajax.Web.DataTable([ 
      ["HID","System.String"], 
      ["HFrName0","System.String"], 
      ["HFtName0","System.String"], 
      ["HGFName0","System.String"], 
      ["HFmName0","System.String"], 
      ["TID","System.Byte"] 
     ],[ 
      ["123456789","ABCD1","ABCD2","ABCD3 ","ABCD4",2] 
     ]) 
    ]), 
    "DownDataValue": new Ajax.Web.DataSet([]), 
    "MenuDataValue": new Ajax.Web.DataSet([]), 
    "SearchReturnValue": new Ajax.Web.DataSet([]), 
    "Result": null, 
    "NewID": "NoID", 
    "AffectedRecords": 0 
}; 

Это потребует любая услуга предусматривает, что объект Ajax существует.

+0

100% Теперь он работает для меня. Большое спасибо Pointy – Nai