【发布时间】:2012-06-29 17:07:27
【问题描述】:
我正在解析这样的 json 对象:
val product_array:Option[Any] = scala.util.parsing.json.JSON.parseFull(products_json)
var product_array2 = Array()
product_array match {
case Some(p) => {
for {
(id, desc) <- p.asInstanceOf[Map[String,Map[String,Any]]]
(propName, propValue) <- desc
} product_array2(id) ++ Array(propName->propValue.toString)
}
case None => test = "No products in shopping cart"
}
问题是我试图用这一行创建一个多维数组:
product_array2(id) ++ Array(propName->propValue.toString)
但它不起作用。如何在 for 循环中创建多维数组?
希望我能澄清一下:
在 PHP 中是这样的:
product_array2[id][propName]=propValue;
【问题讨论】:
-
请更清楚预期的结果是什么。你想要一个多维数组,很好。但是什么存储在哪个维度?例如
product_array2(id)没有意义,因为id是一个字符串。我的猜测是您想将id转换为整数并将其用作外部数组维度。但从你目前的表述中不清楚。 -
PHP 的
Array不是其他任何人都可以识别的数组。也就是通常所说的dictionary或map,在Scala中称为Map。