Чтение Json объекта с использованием Javascript - PullRequest
0 голосов
/ 07 мая 2020

У меня есть один объект json, который я пытаюсь прочитать через javascript, и я также могу успешно прочитать этот объект. Пожалуйста, найдите ниже мою json String

"{
"SOAPENVEnvelope":
{
"@attributes":
{
"xmlnsxsi":"http//www.w3.org/2001/XMLSchema-instance",
"xmlnsxs":"http//www.w3.org/2001/XMLSchema",
"xmlnsSOAP-ENV":"http//schemas.xmlsoap.org/soap/envelope/"
},
"SOAPENVBody":
{
"ns2createPartsResponse":
{
"@attributes":
{
"xmlnsns2":"partsproductdefinition",
"xmlnsns4":"http//www.vitual.com/parts/productdefinition",
"xmlnsns3":"partsreasoncode","xmlnsns5":"http//www.virtual.com/parts/common"
},
"ns2Response":
{
"ns4partsType":"PartsOrder",
"ns4PartNum":"2020050762-79509XRXR-3-1",
"ns4description":"2020050762-79509XRXR-3-1",
"ns4currentRevision":"true",
"ns4revision":"A-1",
"ns4hasBeenReleased":"false",
"ns4partsTemplate":"false",
"ns4subPartsList":
[
{
"ns4partsRef":"PARTS,2020050762-79509XRXR-3-1,H,A-1",
"ns4modifiedDateTime":"2020-05-07T010658.000-0400"
}
],
"modifiedDateTime":"2020-05-07T010658.000-0400"}}}}}"

Я читаю указанный c узел, используя приведенный ниже код:

respArray = jsonObj.SOAPENVEnvelope.SOAPENVBody.ns2createPartsResponse.ns2Response.ns4subPartsList;
for(i=0;i<respArray.length;i++){
    partsRef=respArray[i].ns4partsRef;
    break;  
}

На данный момент этот фрагмент кода работает для меня, но проблема возникает, когда разработчик службы вносит некоторые изменения в веб-службу, а затем в ответе все префиксы пространства имен увеличиваются на 1, т.е. если один из префиксов пространства имен равен ns4, разработчик увеличивает пространство имен до ns5 , если он что-то изменит в сервисе. По этой причине мне всегда придется менять свой код.

Мой вопрос в том, могу ли я прочитать значение ключа JSON без использования префикса пространства имен.

Что-то вроде jsonObj.SOAPENVEnvelope.SOAPENVBody.[local-name()='createPartsResponse'].[local-name()='Response'].[local-name()='subPartsList']

Жду ваших ответов и заранее всем спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...