-3

JSON を RDD に解析する際に問題があります

{"data":"{\"orderID\":\"3\",\"products\":[{\"productID\":10028,\"category\":\"342\",\"name \":\"キッズ コート\",\"性別\":\"キッズ\",\"スポーツ\":\"バスケットボール\",\"色\":\"青\",\"小売価格\ ":268.0,\"sellPrice\":268.0,\"sellQuantity\":1,\"taxablePrice\":268.0,\"brand\":\"Inno Fashion\",\"stockQuantity\":999,\ "subTotal\":268.0,\"ancestorCategories\":[\"2426\",\"2454\",\"241\",\"342\",\"24\",\"34\", \"2439\",\"21\",\"3\",\"2\",\"1\",\"2412\",\"2430\",\"2503\"]}, {\"productID\":10031,\"category\":\"334\",\"name\":\"Kids Tshirt\",\"gender\":\"Kids\",\"sport\":\ "Cycling\",\"color\":\"Blue\",\"retailPrice\":59.0,\"sellPrice\":59.0,\"sellQuantity\":6,\"taxablePrice\":59.0,\ "brand\":\"361 Sports\",\"stockQuantity\":994,\"subTotal\":354.0,\"ancestorCategories\":[\"2426\",\"241\",\"33 \",\"24\",\"2429\",\"334\",\"2439\",\"21\",\"3\",\"2\",\"1\" ,\"2412\",\"2503\",\"2451\"]}}性別\":\"キッズ\",\"スポーツ\":\"サイクリング\",\"色\":\"青\",\"小売価格\":59.0,\"販売価格\":59.0, \"sellQuantity\":6,\"taxablePrice\":59.0,\"brand\":\"361 Sports\",\"stockQuantity\":994,\"subTotal\":354.0,\"ancesstorCategories\" :[\"2426\",\"241\",\"33\",\"24\",\"2429\",\"334\",\"2439\",\"21\", \"3\",\"2\",\"1\",\"2412\",\"2503\",\"2451\"]}}性別\":\"キッズ\",\"スポーツ\":\"サイクリング\",\"色\":\"青\",\"小売価格\":59.0,\"販売価格\":59.0, \"sellQuantity\":6,\"taxablePrice\":59.0,\"brand\":\"361 Sports\",\"stockQuantity\":994,\"subTotal\":354.0,\"ancesstorCategories\" :[\"2426\",\"241\",\"33\",\"24\",\"2429\",\"334\",\"2439\",\"21\", \"3\",\"2\",\"1\",\"2412\",\"2503\",\"2451\"]}}\"brand\":\"361 Sports\",\"stockQuantity\":994,\"subTotal\":354.0,\"ancestorCategories\":[\"2426\",\"241\",\" 33\"、\"24\"、\"2429\"、\"334\"、\"2439\"、\"21\"、\"3\"、\"2\"、\"1\ ",\"2412\",\"2503\",\"2451\"]}}\"brand\":\"361 Sports\",\"stockQuantity\":994,\"subTotal\":354.0,\"ancestorCategories\":[\"2426\",\"241\",\" 33\"、\"24\"、\"2429\"、\"334\"、\"2439\"、\"21\"、\"3\"、\"2\"、\"1\ ",\"2412\",\"2503\",\"2451\"]}}

この情報をRDDに読み込むと、

       1.     val content = parse(event.properties.get[String]("data"))
       2.     val productID = (for {JInt(x) <- (content \\ "productID")} yield x.toString())
       3.     val sellProductQuantity = (for {JInt(x) <- (content \\ "sellQuantity")} yield x.toString())
       4.     val category = for { JArray(x) <- (content \\ "ancesstorCategories")} yield x
       5.     val compactProductId = compact(content \\ "productID")


      6.                  yield BuyEvent(
      7.                  user = userID,
      8.                  item = productID(index).toString,
      9.                  category = category(index),
      10.                count = (sellProductQuantity(index).values.toString).toInt)

JSON の「ancestorCategories」を「category」またはリスト List(2426, 2454, 241, 342, 24, 34, 2439, 21, 3、2、1、2412、2430、2503)

エラー: 見つかりました: リスト[org.json4s.JsonAST.JValue] [エラー] [Console$] [エラー] 必要: 配列[文字列]

List[org.json4s.JsonAST.JValue] から List[String] に変換するのを手伝ってくれる人はいますか? どうもありがとうございました。

4

2 に答える 2

0
var content = parse(json)
var aarray = ArrayBuffer()
(content \\ "ancesstorCategories").children.foreach(x=>{
aarray+x.toString
})
var list= aarray.toList

x=>{} ブロックでできることは何でもできるので、これはうまくいくと思います

于 2015-10-08T13:07:30.427 に答える