从Scala中的JSON数据中找到最大值 [英] Find the maximum value from JSON data in Scala

查看:328
本文介绍了从Scala中的JSON数据中找到最大值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对Scala编程非常陌生.我正在编写一个测试程序,以从JSON数据中获取最大价值.我有以下代码:

I am very new to programming in Scala. I am writing a test program to get maximum value from JSON data. I have following code:

import scala.io.Source
import scala.util.parsing.json._

object jsonParsing{

//Id int `json:"id"`
//Price int `json:"price"`

def main(args: Array[String]): Unit = {

    val file_name = "jsonData.txt"

    val json_string = scala.io.Source.fromFile("jsonData.txt").getLines.mkString

    val json_arr = json_string.split(",")

    json_arr.foreach {println}  

    }
}

json_arr.foreach {println}打印以下数据:

The json_arr.foreach {println} prints following data:

[{ "id":1
"price":4629}
 { "id":2
"price":7126}
 { "id":3
"price":8862}
 { "id":4
"price":8999}
 { "id":5
"price":1095}]

我被困在弄清楚如何从此类JSON数据中找到最高价格的部分?也就是说,在这种情况下,输出应为"8999".

I am stuck at the part of figuring out how to find the maximum price from such JSON data? That is, in this case the output should be '8999'.

推荐答案

您可以在下面尝试以下操作:

you can try something like this below:

    package com.nielsen.buy.integration.commons

import collection.immutable.IndexedSeq
import com.google.gson.Gson
import com.google.gson.JsonObject
import com.google.gson.JsonParser

case class wrapperObject(val json_string: Array[MyJsonObject])
case class MyJsonObject(val id:Int ,val price:Int)

object Demo {

    val gson = new Gson()
    def main(args: Array[String])={
        val json_string = scala.io.Source.fromFile("jsonData.txt").getLines.mkString
        //val json_string= """{"json_string":[{"id":1,"price":4629},{"id":2,"price":7126},{"id":3,"price":8862},{"id":4,"price":8999},{"id":5,"price":1095}]}"""
        val jsonStringAsObject= new JsonParser().parse(json_string).getAsJsonObject
        val objectThatYouCanPlayWith:wrapperObject = gson.fromJson(jsonStringAsObject, classOf[wrapperObject])
        var maxPrice:Int = 0
        for(i <- objectThatYouCanPlayWith.json_string if i.price>maxPrice) 
        {
            maxPrice=  i.price
        }
        println(maxPrice)
    }
}

检查是否对您有帮助

这篇关于从Scala中的JSON数据中找到最大值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆