2014-11-25 65 views
2

我有一个数组,其中包含表示网页表单域的结构。我的问题是如何轻松访问数组中的数据以获取我正在查找的值。在这种情况下,我试图为名称为“availableScreensCSV”的字段获取值,现在我正在循环数组,如果key =“name”和“availableScreensCSV”,则获取该值的数据。希望有一个更简单的方法来做到这一点。下面是我的数组/结构是什么样子如何访问数组中存储的数据

array 

1 struct 
    NAME templateId 
    TYPE hidden 
    VALUE [empty string] 

2 struct 
    NAME useTestSystem 
    TYPE hidden 
    VALUE false 

3 struct 
    NAME availableScreensCSV 
    TYPE hidden 
    VALUE ICASR,ICADM,ICTQ1,ICTQA,ICTQB,ICTQ6,ICFGB 

4 struct 
    NAME ccna 
    TYPE hidden 
    VALUE IFX 

5 struct 
    NAME pon 
    TYPE hidden 
    VALUE I11192014013 

6 struct 
    NAME asr 
    TYPE hidden 
    VALUE 1432310020 

7 struct 
    NAME icsc 
    TYPE hidden 
    VALUE SW80 
+1

你可以发布'''输出的直截图吗? – 2014-11-25 06:36:37

回答

6

我的直觉反应是,“没有你的数据是如何进入这阵?”如果这是一个表单后,你应该能够按名称来简单地得到表单字段:form.availableScreensCSV - 但是,这取决于你的表格后

既然你忘了提及,我假设数组可能不总是以相同的顺序,英寸WHI ch case循环是您唯一合理的选择。有一些功能方法,如arrayFind具有内联函数,但是这是循环顶部的一些语法糖。如果你只是在寻找更清晰,更易读的代码,那么带有内联函数的arrayFind可能是一条可行的路。

如果您正在寻找性能最高的选项,那么只要找到想要的元素,执行<cfbreak />的简单循环将是最佳选择。

+1

不,这是行不通的,因为我没有发布表单,所以我无法访问表单。我从远程端获得一个html页面,并使用jsoup将所有输入字段解析到一个拥有结构的数组中。每个结构都有一个名称,类型和值域 – NoSoup4you 2014-11-25 00:47:36

+0

您使用jsoup解析页面的事实是您问题的一个非常重要的部分,您应该将其包含在问题中。不过,我的第二和第三段仍然适用和正确。 – 2014-11-25 13:22:11

+0

亚当在这里跟踪。除非你的数组长度是数百,否则在这里循环没有真正可观的惩罚。你已经通过检索和解析html来支付罚金:) – 2014-11-25 15:38:40