анализировать значение из объекта JSON с динамическим ключом в VBScript

На самом деле я хочу получить значение из JSON с динамическим ключом в VBScript. Я пытаюсь найти аналогичный вопрос, если какой-либо орган уже спрашивал, но ничего не нашел для VBScript.

Ниже приведен пример json:

{
    "assessmenttype": [{
        "id": "129666",
        "formattedvalue": "wT",
        "value": "WT"
    }],
    "jobid": "2017-2752",
    "jobtitle": "XYZ",
    "links": [{
        "rel": "self",
        "title": "The current profile being viewed.",
        "url": "https://dummyUrl.com/customers"
    }],
    "field33005": {
        "id": "C121",
        "formattedvalue": "XYZ",
        "value": "XYZ"
    }
}

Таким образом, в приведенном выше JSON (который зависит от клиента), так как для одного клиентского узла имя field33005, но для любого другого клиента это имя поля может быть field38045 и т. д., поэтому задача состоит в том, чтобы получить значение подполя «значение» в этом пользовательском поле field33005.

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

Примечание. Для разбора json я использую библиотеку json2-min.js.


person Aashish Kumar    schedule 05.12.2017    source источник
comment
VBScript не поставляется с парсером JSON. Существует класс VbsJson, но вам, вероятно, лучше использовать язык, который на самом деле поставляется с парсером JSON, например JScript или PowerShell.   -  person Ansgar Wiechers    schedule 05.12.2017
comment
Для разбора json я использую библиотеку json2-min.js.   -  person Aashish Kumar    schedule 05.12.2017
comment
@AnsgarWiechers поможет?   -  person Aashish Kumar    schedule 05.12.2017
comment
Если вы используете ASP, скажите об этом. Вы можете делать в ASP то, что не можете делать в простом VBScript.   -  person Ansgar Wiechers    schedule 05.12.2017
comment
Хорошо, извините за путаницу и неясность в моем вопросе.   -  person Aashish Kumar    schedule 05.12.2017


Ответы (1)


Чтобы ответить на мой собственный вопрос, я делаю одну функцию в JavaScript, поскольку мы можем вызывать функцию js из VBSript в ASP.

<script runat="server" language="javascript">

  function getJSONObject(targetJSONObject, propName)
  {

    for (var prop in targetJSONObject)
    {
      if (prop = propName)
      {
        return targetJSONObject[prop].value;
      }
    }
  return "";
  }
</script>

В приведенном выше методе нам нужно передать фактический Json и имя настраиваемого поля, после чего он вернет подузел «значение» этого настраиваемого поля.

person Aashish Kumar    schedule 05.12.2017
comment
Возможно, я неправильно понял ваш вопрос, но это не ответ на него. Я думал, что проблема в том, что вы не знали, каково имя свойства, но все равно должны были получить значение. Эта функция требует, чтобы вы знали имя свойства. Кроме того, тест на равенство в операторе if должен быть ==. - person Craig; 08.12.2017
comment
На самом деле имя свойства будет разным для каждого клиента, но мы должны заранее знать, каким будет имя свойства для конкретного клиента, и мы можем сохранить это имя свойства либо в БД, либо в каком-либо конкретном файле клиента. Поэтому мне пришлось написать общий код, с помощью которого я мог получить значение этого конкретного свойства клиента. - person Aashish Kumar; 11.12.2017