【问题标题】:Reading JSON from My.Resources into String adds "vbCrLf" to my string and fails to read into JObject将 My.Resources 中的 JSON 读入 String 会将“vbCrLf”添加到我的字符串中,但无法读入 JObject
【发布时间】:2020-07-24 19:07:46
【问题描述】:

正如标题所说,我有一个相当大的 JSON 文件作为嵌入到我的应用程序中的资源。

然后我希望从文件中读取 JSON 到一个字符串,然后将它添加到一个 JObject,但是每次我这样做时都会收到关于路径的错误。

Dim value As String = System.Text.ASCIIEncoding.ASCII.GetString(My.Resources.JSON_Data)

Dim jsonObject As JObject = JObject.Parse(value)

当我检查字符串时,似乎在字符串中添加了引号和 vbCrLf,我觉得这导致 JObject 倒下。

有人能指点我正确的方向吗?

更新

我从 JObject 收到以下错误。

'Error reading JObject from JsonReader. Current JsonReader item is not an object: StartArray. Path '', line 1, position 1.'

【问题讨论】:

  • 如果您嵌入了文件并且文件包含文本,只需将该文本读取到局部变量即可。例如,dim json as string = My.Resources.JSON_Data。我怀疑您是否将其存储为字节数组,ASCII 编码。 -- 您会看到 双双引号 和换行符,因为这是字符串在 IDE 中的显示方式。将其打印到控制台,或使用关联的查看器。 -- 你没有发布实际的异常。
  • @AndrewMorton 它出现在最后
  • 那么,也许您实际上将它存储为字节数组而不是字符串。那个编码正确吗?它可以是UTF-8吗?你能发布例外吗?试试Dim jsonObject = JsonConvert.DeserializeObject(Encoding.UTF8.GetString(My.Resources.JSON_Data))。也尝试本地编码 (Encoding.Default)。 Json.Net 对换行没有问题。

标签: json vb.net


【解决方案1】:

解决了我的问题。与资源没有正确返回字符串无关。

整个错误与此有关

Error reading JObject from JsonReader. Current JsonReader item is not an object: StartArray. Path

对不起,感谢任何试图提供帮助的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-10
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多