【问题标题】:I am unable to get environment names from an array我无法从数组中获取环境名称
【发布时间】:2019-12-19 06:45:28
【问题描述】:

我有一个存储环境列表的数组,我必须从这个列表中获取我现在无法获取的所有环境名称。请参阅下面我的尝试,请帮助我解决这个问题。

<script> 
//${environmentList} is getting from backend i.e from modal class in which toString() method has stored with all its contents.
  var envLength = `${environmentList}`.length;
  var allEnv = `${environmentList}`;
  console.log("All Environments : " + allEnv);
  console.log("Length of environments : " + envLength);

  for(let i = 0 ; i < envLength ; i++){ 
    let all = `${allEnv[i].environmentName}`;    
    console.log("Environment Name : " + all[i]);  
} 
 </script>

toString() 方法:

@Override
public String toString() {
    return "EnvironmentModel [environmentId=" + environmentId + ", environmentName=" + environmentName
            + ", environmentDesc=" + environmentDesc + ", hostAddress=" + hostAddress + ", environmentURL="
            + environmentURL + ", configFileName=" + configFileName + ", configFilePath=" + configFilePath
            + ", companyId=" + companyId + ", createdBy=" + createdBy + ", createdAt=" + createdAt
            + ", lastUpdatedBy=" + lastUpdatedBy + ", lastUpdatedAt=" + lastUpdatedAt + ", elementFileName="
            + elementFileName + ", elementFilePath=" + elementFilePath + ", envStatus=" + envStatus + ", projectId="
            + projectId + ", project=" + project + "]";
}

输出:

所有环境:

[EnvironmentModel [environmentId=345, environmentName=MM_Env_1, environmentDesc=Environment_1, hostAddress=null, environmentURL=null, configFileName=SystemFile.xml, configFilePath=/env_files/MM_Env_1, companyId=1, createdBy=2, createdAt=2019 -12-18 16:39:38.595, lastUpdatedBy=2, lastUpdatedAt=2019-12-18 16:42:13.259, elementFileName=ElementFile.xml, elementFilePath=/env_files/MM_Env_1, envStatus=1, projectId=null, project= [Project [projectName=Magic Matrix, projectDescription=Magic Matrix 是 Solitera Software Company 的重要且强大的工具。projectId=23]]], EnvironmentModel [environmentId=346, environmentName=MM_Env_2, environmentDesc=Environment_2, hostAddress=null, environmentURL=null, configFileName=soapAPI_request_GetLyrics.xml, configFilePath=/env_files/MM_Env_2, companyId=1, createdBy=2, createdAt=2019-12-18 16:43:10.59, lastUpdatedBy=2, lastUpdatedAt=2019-12-18 16 :43:58.522, elementFileName=Element.xml, elementFilePath=/env_files/MM_Env_2, envStatus=1, projectId =null, project=[Project [projectName=Magic Matrix, projectDescription=Magic Matrix 是 Solitera Software Company 的重要且强大的工具。projectId=23]]], EnvironmentModel [environmentId=347, environmentName=TM_Env_1, environmentDesc=TM_Env_1 , hostAddress=null, environmentURL=null, configFileName=showcasetestData.xml, configFilePath=/env_files/TM_Env_1, companyId=1, createdBy=2, createdAt=2019-12-18 16:44:33.783, lastUpdatedBy=2, lastUpdatedAt=2019 -12-18 16:44:47.09, elementFileName=soapAPI_request_TempConvert.xml, elementFilePath=/env_files/TM_Env_1, envStatus=1, projectId=null, project=[Project ...

环境长度: 2235

环境名称: undefined

【问题讨论】:

  • 让您的生活更轻松,并使用已建立的数据交换格式,例如 JSON。
  • @Sandeep Kumar:我也用 'var' 代替了 'let',但没有用。我得到相同的输出。
  • 如果您可以控制后端,我同意@Teemu 并建议您使用 JSON。
  • @DanielderGrosse: 是的,你们俩都是对的,但问题是这样 -> 以前,我使用过 Jackson JSON 解析器,但不知何故它抛出了 catch 异常,只给了我 null 值,为了简单的目的,我已经使用了 toString() 方法,在这个的帮助下,我能够得到环境列表。
  • 这确实应该在服务器端修复。我建议您提出一个新问题,即为什么您的 Java 代码中的 JSON 转换失败,并从根源上解决问题,而不是创建一个 hack。

标签: javascript java spring jsp


【解决方案1】:

在 Java 类中使用 Jackson json 解析器,在 javascript 端使用 JSON.parse 将字符串更改为 JSON 对象。

【讨论】:

  • 以前,我使用过 Jackson JSON 解析器,但不知何故,它抛出了 catch 异常,只给了我空值,为了简单的目的,我使用了 toString() 方法,在这个的帮助下,我能够获取环境列表。
  • @slt_rajan 因为你有不同模式的字符串,逻辑可能包含正则表达式和拆分函数。如果您使用 JSON 解析,逻辑将花费更少的精力。
【解决方案2】:

在 javascript 方面,您应该了解变量 environmentList 是一个字符串,该字符串的长度是 2235 个字符。要访问每个属性,您必须解析字符串并将其转换为对象。

由于您不依赖 JSON,您需要使用 String.split 或正则表达式匹配器。

但更简单的解决方案是将环境变量转换为 JSON 格式。由于System.getenv() 的输出类型是Map&lt;string, string&gt;,您可以尝试此解决方案来创建JSON 结构:Converting Map<String,String> into json

之后,您可以将 json 写入 HTML 中的脚本标记中,以便直接对其进行解析,或者将用户 JSON 解析到上述解决方案的字符串上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 2019-07-08
    • 2020-11-26
    • 2017-06-23
    • 1970-01-01
    相关资源
    最近更新 更多