代码之家  ›  专栏  ›  技术社区  ›  Eduardo Pignatelli

如何以八度音阶解析json文件?

  •  2
  • Eduardo Pignatelli  · 技术社区  · 7 年前

    如标题所示,是否有一种内置的方法来解析/解码 .json 八度音阶的文件?

    我已经阅读了Octave文档和不同的工具,但我唯一找到的是这个工具: https://github.com/fangq/jsonlab

    编辑: 目的是能够在两种不同的环境中使用相同的json配置文件:python和octave。因此,问题是: 1、定义配置; 2、运行octave脚本,从 config.json ; 3、运行python脚本,从 配置。json ;

    目前,我正在使用jsonlab工具集来实现octave,由于json非常简单,所以它工作得非常好。这个问题纯粹是出于好奇,为什么octave在默认情况下不实现json序列化库。

    所以,由于json很简单,我的解决方案是使用 https://github.com/fangq/jsonlab 。从下面的评论来看,这似乎不适合用于更复杂的JSON。

    1 回复  |  直到 7 年前
        1
  •  4
  •   Andy    7 年前

    我已经在许多项目中使用JSONlab很长时间了,但因为它非常慢,有些地方没有达到我的预期,所以我围绕rapidjson编写了一个倍频程包装器: https://github.com/Andy1978/octave-rapidjson

    自述。md显示了一些示例。例如,从服务器获取JSON回复,然后将其转换为结构:

    octave:1> x = load_json (urlread ("http://headers.jsontest.com/"))
    x =
    
      scalar structure containing the fields:
    
        X-Cloud-Trace-Context = 61910c1954c45fe021d35aeeb5477c20/2702800337619378204
        Host = headers.jsontest.com
        Accept = */*
    
    octave:2> x.Host
    ans = headers.jsontest.com
    

    另一种方式:

    octave:11> a.x = 5; a.y = {1,2,"foobar"}; a.z = rand(2); save_json (a)
    ans = {
        "x": 5.0,
        "y": [
            1.0,
            2.0,
            "foobar"
        ],
        "z": [
            [
                0.6835708677160701,
                0.891779233104656
            ],
            [
                0.9378550691771155,
                0.664043049215685
            ]
        ]
    }