如何将JSON值传递给变量/函数?

时间:2014-04-04 20:15:01

标签: javascript html json

我正在解析json文件并将数据附加到HTML表。我需要创建一些等于我的JSON对象中的3个属性的变量。我需要将这些变量包含在一个函数中,我将每个JSON对象附加到表中的一个td元素。

这是我追加数据的功能......

function createPatientTable(json) {
$.each(json.LIST, function(i, COPD_QUAL) {
$('.footable > tbody:last').append('<tr><td>' + COPD_QUAL.PATIENT + '</td><td><a href="javascript:APPLINK(0,\'powerchart.exe\',\'/PERSONID='+COPD_QUAL.PERSON_ID+' /ENCNTRID='+COPD_QUAL.ENCNTR_ID+'\')">' + COPD_QUAL.FIN + '</a></td><td>' + COPD_QUAL.NURSE_UNIT + '</td><td>' + COPD_QUAL.ROOM +   '</td><td>' + COPD_QUAL.BED +'</td><td>' + COPD_QUAL.ATTENDING_PHYS + '</td><td>' +  COPD_QUAL.LENGTH_OF_STAY + '</td><td class="assessment ' + getSeverity(COPD_QUAL.MED_ASSESS)   + '" onclick="openPowerform">' + COPD_QUAL.MED_ASSESS + '</td></tr>');
});
$('.footable').footable();
};

这是我的一个JSON对象(为便于阅读而格式化):

{
     "COPD_QUAL":15, 
     "LIST":[ 
        {
            "PATIENT": "TEST,    TRICKLE",
            "FIN": "70100905",
            "NURSE_UNIT": "TIC",
            "ROOM": "C219",
            "BED": "A",
            "ATTENDING_PHYS": "LEVITEN , DANIEL L",
            "LENGTH_OF_STAY": "171days 02:14:15",
            "MED_ASSESS": "Mild exacerbation",
            "ACTIVITY_ID": "305675472.0000",
            "PERSON_ID": 8986122.000000,
            "ENCNTR_ID": 14150574.000000
         }
       ]
     }

我需要将COPD_QUAL.PERSON_IDCOPD_QUAL.ENCNTR_IDCOPD_QUAL.ACTIVITY_ID插入到我的下方函数中,以便在单击td元素时,下面的函数会触发personid,encntrid和activityid已附加到该行的JSON对象:

function openPowerform() {
   var dPersonId = "COPD_QUAL.PERSON_ID";
   var dEncounterId = "COPD_QUAL.ENCNTR_ID";
   var formId = 0.0;
   var activityId = "COPD_QUAL.ACTIVITY_ID";
   var chartMode = 1;
   var mpObj = window.external.DiscernObjectFactory("POWERFORM");
   mpObj.OpenForm(dPersonId, dEncounterId, formId, activityId, chartMode);
};

如何成功地使这些变量“动态”等于我的JSON值? (因为我的JSON文件中每个对象/字符串的值不同)。

提前致谢!

1 个答案:

答案 0 :(得分:0)

您的JSON格式错误。这是一个有效的对象:

{
    "COPD_QUAL": 15,
    "LIST": [
        {
            "PATIENT": "TEST,    TRICKLE",
            "FIN": "70100905",
            "NURSE_UNIT": "TIC",
            "ROOM": "C219",
            "BED": "A",
            "ATTENDING_PHYS": "LEVITEN , DANIEL L",
            "LENGTH_OF_STAY": "171days 02:14:15",
            "MED_ASSESS": "Mild exacerbation",
            "ACTIVITY_ID": "305675472.0000",
            "PERSON_ID": 8986122,
            "ENCNTR_ID": 14150574
        }
    ]
}

LIST数组中的每个对象都必须通过其数组位置进行寻址。使用此对象,您的对象属性引用将是:

LIST[0].PERSON_ID, LIST[0].ENCNTR_ID, and LIST[0].ACTIVITY_ID

我不知道你最终是否想要构建你的JSON,但这就是你现在所拥有的。此外,没有绝对需要通过JSON.parse()运行它。它可以像JavaScript Object Literal一样对待,并以相同的方式访问。