如何将 JSONArray 中的元素添加到 QuestionnaireItemOptionComponent 列表?

问题描述

谁能举例说明如何在 QuestionnaireItemOptionComponent 中保存字符串? 我找不到办法做到这一点。有没有其他方法可以做到这一点?我的选项存储在 JSONArray 中。

这就是我想要做的:

JSONArray options = rec.getJSONArray("options");

QuestionnaireItemOptionComponent test = new QuestionnaireItemOptionComponent();
            List<QuestionnaireItemOptionComponent> listdata = new ArrayList<>();
            if (options != null) {
                for (int j=0;j<options.length();j++){
                    //test = options.getString(j); // String to QuestionnaireItemOptionComponent 
                    //test.setValue(options.getString(j)) // String to QuestionnaireItemOptionComponent 
                    listdata.add(test);
                }
            }

这是我想要得到的结果:

"option": [
     {"valueString" : "value_1"},{"valueString" : "value_2"},{"valueString" : "valie_3"},{"valueString" : "value_4"},...
     {"valueString" : "value_n"}
]

我正在使用的依赖项是下一个

<dependency>
   <groupId>ca.uhn.hapi.fhir</groupId>
   <artifactId>hapi-fhir-structures-dstu3</artifactId>
   <version>5.1.0</version>
</dependency>
<dependency>
   <groupId>ca.uhn.hapi.fhir</groupId>
   <artifactId>hapi-fhir-validation-resources-dstu3</artifactId>
   <version>5.1.0</version>
</dependency>
<dependency>
    <groupId>ca.uhn.hapi.fhir</groupId>
    <artifactId>hapi-fhir-structures-r4</artifactId>
    <version>5.1.0</version>
</dependency>
<dependency>
    <groupId>ca.uhn.hapi.fhir</groupId>
    <artifactId>hapi-fhir-base</artifactId>
    <version>5.1.0</version>
</dependency>

解决方法

试试:

test.addChild("valueString").setValue(options.getString(j))

,

好的,我找到了一种方法来做到这一点。

代码如下:

JSONArray options = rec.getJSONArray("options");
QuestionnaireItemOptionComponent questionnaire_item = new QuestionnaireItemOptionComponent();
List<QuestionnaireItemOptionComponent> questionnaire_item_list = new ArrayList<>();
StringType stringType = new StringType();
if (options != null) {
    for (int j = 0; j < options.length(); j++) {
        stringType.setValue(options.getString(j));
        questionnaire_item.setValue(stringType);
        questionnaire_item_list.add(questionnaire_item);
    }
}

Questionnaire.QuestionnaireItemComponent questionnaire = new Questionnaire.QuestionnaireItemComponent();
questionnaire.setOption(questionnaire_item_list);

这是问卷中选项部分的最终结果:

"option":[
   {
      "valueString":"Option 1"
   },{
      "valueString":"Option 2"
   },{
      "valueString":"Option 3"
   },{
      "valueString":"Option 4"
   }
]

在使用 FHIR 时,我无法理解 Type value 期望作为参数的 setValue(Type value) 背后的内容。该值可以是任何类型,如 StringType、IntegerType 等。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...