Условный выбор из массива JSON

Я пытаюсь выбрать и отобразить конкретные данные JSON в массиве. Данные выглядят так:

{ "thingys" : [
  {
    "type" : "thingy1",
    "text" : "this is thingy1"
  },
  {
    "type" : "thingy2",
    "text" : "this is thingy2"
  },
  {
    "type" : "thingy3",
    "text" : "this is thingy3"
  }
]}

Я использую json2html, и я обычно использовал бы что-то вроде

{"tag":"div","html":"${thingys.text}"}

Это было бы хорошо, но я хочу иметь возможность указать, что я хочу ${thingys.text}, где ${thingys.type} == "thingy3". Как бы я поступил так?

1 ответ

Решение

Лучший способ добиться чего-то подобного - включить встроенную функцию для обработки "вещей".

var transforms = {
'main': {"tag":"div","children":function() {

  var out = [];
  for(var i=0; i < this.thingys.length; i++)
     if(this.thingys[i].test == "thingy3") out.push(this.things[i]);

  return( json2html.transform(out,transforms.thing) );
}},

'thing':{"tag":"div","html":"${text}"}
};
Другие вопросы по тегам