【问题标题】:What to use to process JSON responses on a command line?在命令行上使用什么来处理 JSON 响应?
【发布时间】:2010-11-08 00:01:39
【问题描述】:

我有一个夜间可执行文件,它将在 Windows 或 linux 服务器上运行,该服务器将从各种 Web 源下载信息,其中一个源包含 JSON 响应。此可执行文件将下载信息并连接到 SQL 服务器数据库以更新相应的记录。

我来自 C#、windows 编程背景,所以我的自然倾向是使用 JSON.net 库或创建自定义代码来使用 C# 解析 JSON 文本。但我真的更愿意使用适当的脚本语言来利用eval() 语句来处理JSON。

有没有人建议哪种脚本语言和开发环境最适合这种服务器进程?运行在linux还是windows服务器对我来说无所谓,我只想用最好的工具。

【问题讨论】:

    标签: c# json command-line scripting


    【解决方案1】:

    eval() 技术仅适用于 JavaScript,因为 JSON 是有效的 JavaScript 语法。您可能可以使用 Rhino (Java) 之类的东西,但除此之外,您选择的每种语言都需要使用 JSON 库。由于您最熟悉 C# 和 .NET,因此如果目标计算机已经提供了它,这似乎是最合乎逻辑的选择。

    【讨论】:

      【解决方案2】:

      JSONsharp (.Net 2.0+) 或 JSON.net (.Net 3.5) 是你的朋友,JSON.org 上的其他人也是。

      但请注意 JavaScript 中的 eval() 语句 - 它执行 JSON,因此如果有人将 JavaScript 放入其中,您可能会发现自己正在运行代码。相反,您可能想使用JSON.parse 之类的东西。

      【讨论】:

        【解决方案3】:

        任何脚本环境都应该没问题,而且几乎都内置了不错的 JSON 解析器。

        这是一个 Python 示例(内置 json 模块需要 Python 2.6 及更高版本,否则请下载 simplejson):

        import urllib2, json
        response = urllib2.urlopen("http://example.net/url/for/json").read()
        data = json.loads(response) # returns a native Python type, e.g. a dictionary
        
        # your code here
        process_and_update_db(data)
        

        如果您想使用 .NET(例如,可能更容易访问您的数据库),并且想要一种像 Python 这样的良好脚本语言,请尝试IronPython。您可以使用下载并使用simplejson 而不是json

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-11-04
          • 2013-04-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多