ConvertFrom-Json抱怨字符串未终止

时间:2018-12-17 00:08:59

标签: string powershell

我有一个PowerShell脚本,可以从DLL中提取数据。 DLL返回JSON的前3000个字符。在大多数情况下,这很好,因为完整的json少于3000个字符。但是,如果一行返回更长的json,我只会得到前3000个字符。

如果我有一个达到上限的json并运行:

$myString = $returnedArray[$currentrow] | ConvertFrom-Json

我得到:

  

ConvertFrom-Json:传入的未终止字符串。(3000):

正确的解决方法是处理截断JSON的源。但是,我无权访问该源代码(由第三方公司拥有)。

现在我有了输出,这是一个仅添加字符串终止符的问题吗?还是我必须自己解析JSON,弄清楚正确结束当前字段并添加它所需要的内容?

我一直在尝试各种方法来终止JSON字符串,但是都没有用。目前,我的PowerShell脚本只是跳过ConvertFrom-Json行失败的任何行。

1 个答案:

答案 0 :(得分:0)

您将需要自己解析JSON字符串并跟踪任何字符串或嵌套值,以便一旦停止接收值即可正确终止它们。

这是一些Json的简短示例,如果不首先跟踪它,将很难终止它。

{
    "glossary": {
        "title": "example glossary",
        "GlossDiv": {
            "title": "S",
            "GlossList": {
                "GlossEntry": {