我有一个PowerShell脚本,可以从DLL中提取数据。 DLL返回JSON的前3000个字符。在大多数情况下,这很好,因为完整的json少于3000个字符。但是,如果一行返回更长的json,我只会得到前3000个字符。
如果我有一个达到上限的json并运行:
$myString = $returnedArray[$currentrow] | ConvertFrom-Json
我得到:
ConvertFrom-Json:传入的未终止字符串。(3000):
正确的解决方法是处理截断JSON的源。但是,我无权访问该源代码(由第三方公司拥有)。
现在我有了输出,这是一个仅添加字符串终止符的问题吗?还是我必须自己解析JSON,弄清楚正确结束当前字段并添加它所需要的内容?
我一直在尝试各种方法来终止JSON字符串,但是都没有用。目前,我的PowerShell脚本只是跳过ConvertFrom-Json
行失败的任何行。
答案 0 :(得分:0)
您将需要自己解析JSON字符串并跟踪任何字符串或嵌套值,以便一旦停止接收值即可正确终止它们。
这是一些Json的简短示例,如果不首先跟踪它,将很难终止它。
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {