【发布时间】: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 对换行没有问题。