Prajith MP Ответов: 2

Как разобрать мой результат json


Привет,

я получил ответ ajax json на своей странице javascript, как показано ниже


{"result":"[VSummary [userName=kk, plan=Professional, sDate=null, plate=EVA 5653, groupName=null, vehicleType=null, defaultDriver=null, solrQuery=null, driver=null, firstActiveTime=0, lastActiveTime=0, distance=0.0, maxSpeed=0.0, exceptions=0, trips=0, fuelConsumed=0.0, movHrs=0.0, stopHrs=0.0, idlingHrs=62000.0, enginehrson=0.0, Enginehrsoff=0.0, workinghrs=0.0]]"}


Здесь VSummary это список объектов, восстановленных из моего java-приложения. Как я могу преобразовать VSummary в список в JAVASCRIPT

JSON. parse здесь не работает

var a=JSON. parse(response. result); / / здесь ответ является ли ответ json
SyntaxError: JSON. parse: неожиданный символ в строке 1 столбца 2 данных JSON

Что я уже пробовал:

var response = JSON.parse('{"result":"[VSummary [userName=kk, plan=Professional, sDate=null, plate=EVA 5653, groupName=null, vehicleType=null, defaultDriver=null, solrQuery=null, driver=null, firstActiveTime=0, lastActiveTime=0, distance=0.0, maxSpeed=0.0, exceptions=0, trips=0, fuelConsumed=0.0, movHrs=0.0, stopHrs=0.0, idlingHrs=62000.0, engineHrsOn=0.0, engineHrsOff=0.0, workingHrs=0.0]]"}');

var a=JSON.parse(response.result);  

Синтаксис ошибка: JSON для.разбираемый символ в строке 1 столбец 2 из JSON-данных


var a=response.result["VSummary"]

не определено

Karthik_Mahalingam

его действительный json, но не действительный json, чтобы получить выполнить это
var a=response. result ["VSummary"]

Prajith MP

тогда как я могу извлечь значение
"[VSummary [userName=kk, plan=Professional, sDate=null, plate=EVA 5653, groupName=null, vehicleType=null, defaultDriver=null, solrQuery=null, driver=null, firstActiveTime=0, lastActiveTime=0, distance=0.0, maxSpeed=0.0, exceptions=0, trips=0, fuelConsumed=0.0, movHrs=0.0, stopHrs=0.0, idlingHrs=62000.0, engineHrsOn=0.0, enginehrsoff=0.0, workinghrs=0.0]]"

Karthik_Mahalingam

Всегда использовать  Ответить  кнопка, чтобы отправить комментарии / запрос пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.

2 Ответов

Рейтинг:
2

F-ES Sitecore

ответ. результат таков

[VSummary [userName=kk, plan=Professional, sDate=null, plate=EVA 5653, groupName=null, vehicleType=null, defaultDriver=null, solrQuery=null, driver=null, firstActiveTime=0, lastActiveTime=0, distance=0.0, maxSpeed=0.0, exceptions=0, trips=0, fuelConsumed=0.0, movHrs=0.0, stopHrs=0.0, idlingHrs=62000.0, engineHrsOn=0.0, engineHrsOff=0.0, workingHrs=0.0]]


так вот что вы пытаетесь разобрать при выполнении

var a=JSON.parse(response.result); 


однако этот текст не является JSON, поэтому вы не можете использовать JSON.parse для его анализа, вам нужно будет написать свой собственный JS-код для его анализа или обновить java-код, который отправляет ответ, чтобы вернуть вам действительный json.


Рейтинг:
1

Karthik_Mahalingam

Это может быть неправильный метод анализа данных JSON, но ответ, который вы получаете, не является допустимым форматом JSON, поэтому вы должны попробовать это, если ответ будет в одном и том же формате во всех случаях.

var response = JSON.parse('{"result":"[VSummary [userName=kk, plan=Professional, sDate=null, plate=EVA 5653, groupName=null, vehicleType=null, defaultDriver=null, solrQuery=null, driver=null, firstActiveTime=0, lastActiveTime=0, distance=0.0, maxSpeed=0.0, exceptions=0, trips=0, fuelConsumed=0.0, movHrs=0.0, stopHrs=0.0, idlingHrs=62000.0, engineHrsOn=0.0, engineHrsOff=0.0, workingHrs=0.0]]"}');
     var a = response.result;
    a=  a.replace('[', '(').replace(']]', ']');
    a = a.replace('[', ':{').replace(']', '}');
    a = a.replace(/, /g, '","').replace(/=/g, '":"');
    a = a.replace('{', '{"').replace('}', '"}').replace('(', "{") + '}';
    a = a.replace("VSummary", '"VSummary"');
    var obj = JSON.parse(a);
    var userName = obj.VSummary.userName; // KK
    var plan = obj.VSummary.plan;  // Professional
    var plate = obj.VSummary.plate; // EVA 5653