Json VS在值(VB.NET)后面的花括号中显示类名
这可能是一件非常简单的事情,但我就是想不出来 因此,我试图在我的项目中创建一个通用函数,它可以将我抛出的任何JSON解析为vb.net中易于使用的对象。我尝试了Json VS在值(VB.NET)后面的花括号中显示类名,json,vb.net,Json,Vb.net,这可能是一件非常简单的事情,但我就是想不出来 因此,我试图在我的项目中创建一个通用函数,它可以将我抛出的任何JSON解析为vb.net中易于使用的对象。我尝试了JSON.NET,但在我看来,您需要为每个不同的JSON结构创建一个类,因此我决定使用JavaScriptSerializer.Deserialize从System.Web.Scripts.Serialization库进行反序列化。 一切似乎都很好,在我看来,这个函数能够解析任何JSON,而无需事先为其创建类,但当我试图从中提取值时,遇到
JSON.NET
,但在我看来,您需要为每个不同的JSON结构创建一个类,因此我决定使用JavaScriptSerializer.Deserialize
从System.Web.Scripts.Serialization
库进行反序列化。
一切似乎都很好,在我看来,这个函数能够解析任何JSON,而无需事先为其创建类,但当我试图从中提取值时,遇到了一些麻烦。
所以通常当我制作一个字符串,然后在即时窗口中打印它时,它只打印字符串。但是如果我打印解析后的JSON的一个元素,它会在后面打印类名
这是我的密码:
Dim jss = New JavaScriptSerializer()
Dim out = jss.Deserialize(Of Object)(jsonString)
Dim a = "test"
Dim b = out("name")
我的JSON字符串如下所示:
{“name”:“test”,“data”:“Hello”}
现在,当我打印对象a时,它给出:
?a
"test"
但如果我打印对象b,我会得到:
?b
"test" {String}
String: "test"
整数和其他数据类型也会发生同样的情况
为什么会发生这种情况?如果没有在JSON对象之后打印的其他内容,我如何从JSON对象获取我的值
另外,如果有人知道一种将JSON解析为VB.net中可读内容的快速方法(无需为我计划使用的所有JSON结构创建不同的类),请随时告诉我:)
提前谢谢 另一个原因是,您有一个对字符串的对象引用,而不是字符串引用-如果您要
Console.WriteLine(…)
或Debug.WriteLine(…)
这些,如果您已经有了json对象,您将无法获得类型信息,您可以使用Newtonsoft
作为json解析器
。首先,您必须下载,然后在VisualStudio中添加引用。然后导入这些代码:
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq
您可以使用此代码来解析json对象
For Each value As Object In yourJsonObject
token = JObject.Parse(value.ToString())
Dim name = token.SelectToken("name")
Dim data = token.SelectToken("data")
Next value
请记住,随着循环的进行,name
和data
的值将覆盖;因此,在循环结束时,您将在json对象中获得name
和data
的最后一个值。要打印所有值,请确保在循环中添加console.writeline()
code。像这样:
For Each value As Object In yourJsonObject
token = JObject.Parse(value.ToString())
Dim name = token.SelectToken("name")
Dim data = token.SelectToken("data")
Console.WriteLine("Name: {0}, Data: {1}", name.toString, data.toString)
Next value
谢谢这样行吗?我应该设法删除引用吗?或者如果它只是停留在那里就可以了吗?在我看来,它看起来有点混乱:/您正在一个调试工具中查看它,该工具试图提供帮助,并向您展示有关它的更多信息。当您在应用程序中实际使用它时,这些都不会显示出来,除非您努力让它显示出来。当我在即时窗口中打印字符串时,我通常担心字符串后面的{String}部分。然而,如果您有任何关于如何轻松解析JSON的提示,那么我洗耳恭听:DThanks这真的很有帮助。我的json对象只是一个字符串。我想这没问题吧?这段代码适用于json对象。尝试重新构造它,也许它可以用于json字符串。我还没试过,但在我们的领域里一切都是可能的。我发布了这个答案,因为你问这个>>>“我怎样才能从JSON对象中获得我的价值”谢谢。我试着用它解析一个JSON字符串,它似乎很有效。如果有帮助,请接受这个答案@是的,很抱歉我忘了。现在就做