Как получить значение из объекта JSON - PullRequest
0 голосов
/ 21 октября 2019

В моем веб-приложении Web API возвращает следующий объект JOSN.

[ 
   { 
      "templateID":1,
      "template":"{\r\n  \"Body\": \"sample date hete hee. Name\"\r\n}"
   },
   { 
      "templateID":2,
      "template":"{ \"Body\": \"you soon.\" }"
   }
]

Мне нужно получить значение Body от каждого узла JSON, передав templateID. Проблема в том, что в некоторых местах этот JSON имеет \r\n. Однако когда мне нужно получить значение Body для каждого узла. В качестве примера, если я пройду 1, мне нужно получить sample date hete hee. Name, если пройду 2, мне нужно you soon., как я могу это сделать?

Я пробовал это. но не работает

var data2 = [ 
   { 
      "templateID":1,
      "template":"{\r\n  \"Body\": \"sample date hete hee. Name\"\r\n}"
   },
   { 
      "templateID":2,
      "template":"{ \"Body\": \"you soon.\" }"
   }
]

function usersBasedOnIDs(isShow,field){

    var filtered=data2.filter(function(item){
        return item[field] == isShow;         
    });
    console.log(filtered);
}

usersBasedOnIDs(1,'templateID');

Ответы [ 3 ]

3 голосов
/ 21 октября 2019
item[field] == isShow;  

У вас нет объекта, где это условие будет выполнено, я думаю, вы хотите отфильтровать элемент на основе идентификатора, а затем увидеть его значение тела

var data2 = [{
    "templateID": 1,
    "template": "{\r\n  \"Body\": \"sample date hete hee. Name\"\r\n}"
  },
  {
    "templateID": 2,
    "template": "{ \"Body\": \"you soon.\" }"
  }
]

function usersBasedOnIDs(isShow, field) {

  var filtered = data2.filter(function(item) {
    return item[field] == isShow;
  });
  console.log(filtered && JSON.parse(filtered[0].template).Body);
}

usersBasedOnIDs(1, 'templateID');
1 голос
/ 21 октября 2019
function usersBasedOnIDs(templateId) {
    let result = data2.find(function(item) {
        return item.templateId === templateId;
    });
    if(result === undefined) {
        return;
    } else {
        return JSON.parse(result.template).Body;
    }
}

console.log(usersBasedOnIDs(1));
1 голос
/ 21 октября 2019

Просто попробуйте это

var x = [ 
   { 
      "templateID":1,
      "template":"{\r\n  \"Body\": \"sample date hete hee. Name\"\r\n}"
   },
   { 
      "templateID":2,
      "template":"{ \"Body\": \"you soon.\" }"
   }
]
for(let i=0;i<x.length;i++){
  let y = x[i].template;
  console.log(JSON.parse(y).Body);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...