zoukankan      html  css  js  c++  java
  • 集算器如何处理类文本数据计算

    json

    Java有足够多的类库用于解析和生成json,但缺乏后续计算能力。集算器支持多层结构数据,可以不丧失信息地将json解析成可计算的内存数据表进一步处理。

    设有如下格式的json数据:

             {

             “order”:[

                       {

                      “client”:”北京润乾软件”,

                       “date”:”2015-6-23”,

                       “item” : [

                                {

                                “product”:”HP笔记本”,

                                “number”:4,

                                “price”:3200

                                },

                                {

                                “product”:”DELL服务器”,

                                “number”:1,

                                “price”:22100

                                }]

                       },…]

             }

             要写入数据库中order表,结构为:orderid,client,date;和orderdetail表,结构为:orderid,seq,product,number,price的orderdetail表,orderid和seq按顺序生成即可。

            

    A

    1

    =file(“data.json”).read().import@j().order

    2

    =A1.new(#:orderid,client,date)

    3

    =A1.news(item;A1.#:orderid,#:seq,product,number,price)

    4

    >db.update@i(A2,order)

    5

    >db.update@i(A3,ordedetail)

    集算器可将多层json串解析成多层数据集,A2的item字段取值又是一个表。

    除了解析外,也可用集算器将多层数据集生成多层json串。

    Excel

    Excel相当于已经结构化的文本。Java有能解析xls的开源类库(如poi),功能强大但过于底层,开发复杂度高。集算器封装了poi,可读入xls转成二维数据表再进一步运算。

    设有range.xls和position.xls的内容分别为:

    range.xls

    position.xls

    range

    start

    stop

    Point

    position

    Range1

    4561

    6321

    point1

    5213

    Range2

    9842

    11253

    point2

    10254

    要针对position.xls的每一行position,在range.xls中寻找到start/stop将其覆盖,然后将range.xls中相应行内容补充到posistion.xls之后。

            

    A

    1

    =file(“range.xls”).importxls@t()

    2

    =file(“position.xls”).importxls@t()

    3

    =A2.derive((t=A1.select@1(position>=start&&position<=stop)).range:range,t.start:start,t.stop:stop)

    4

    =file(“result.xls”).exportxls(A3)

    集算器读入xls后可以充分利用已有的计算能力。用Excel自带的VBA只能硬编码实现JOIN,非常繁琐,有时不得不导入数据库来做。

  • 相关阅读:
    SQL注入与防范
    JDCP连接池连接数据库报错:java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z
    数据库连接池(基于MySQL数据库)
    使用JDBC连接MySQL数据库的一个基本案例
    快速排序的java实现
    在C++的函数中如何指定一个数组,使得这个数组的大小由函数的输入值来决定
    WORD2010如何把全角字母和数字批量转换成半角
    地图安卓
    浅谈java异常[Exception]
    Adapter的getView
  • 原文地址:https://www.cnblogs.com/raqsoft/p/4922525.html
Copyright © 2011-2022 走看看