Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从VB.net中JSON键值对中的特定键获取字符串形式的值?_.net_Json_Vb.net_Visual Studio_Key Value - Fatal编程技术网

如何从VB.net中JSON键值对中的特定键获取字符串形式的值?

如何从VB.net中JSON键值对中的特定键获取字符串形式的值?,.net,json,vb.net,visual-studio,key-value,.net,Json,Vb.net,Visual Studio,Key Value,我从一个API HTTP get请求中获得一个JSON文件(大约1300行)。下面是一个小示例摘录: { "platformId": 3, "platformName": "pc", "platformNameLong": "PC" } 我使用此数据并将其转换为对象(源是API请求的结果): , 及 在下面的示例中,它可以工作并允许我稍后使用这个对象链接 Label1.Content = Data.platformNameLong 我现在得到了这样一个JS

我从一个API HTTP get请求中获得一个JSON文件(大约1300行)。下面是一个小示例摘录:

{
      "platformId": 3,
      "platformName": "pc",
      "platformNameLong": "PC"
}
我使用此数据并将其转换为对象(源是API请求的结果):

,

在下面的示例中,它可以工作并允许我稍后使用这个对象链接

Label1.Content = Data.platformNameLong
我现在得到了这样一个JSON部分:

{
 "lifeTimeStats": [
    {
      "key": "Score",
      "value": "7,919,327"
    },
    {
      "key": "Matches Played",
      "value": "20105"
    ]
}
我如何才能从一个特定的键(在JSON的值键对中)获取值到我的对象中 (或作为字符串值)

注意:JSON中的一些标签与值键部分中的键具有相同的名称;有没有办法只获取“lifeTimeStats”中键的值


示例:如果我想在“key”:“Matches Played”的位置获取“value”,在本例中是“20105”,该怎么办?

执行以下类似的操作(请用json变量替换serializedJsonString):

选项1:

Dim jsonObject为Newtonsoft.Json.Linq.JObject=Newtonsoft.Json.Linq.JObject.Parse(serializedJsonString)
将jsonArray设置为JArray=jsonObject(“lifeTimeStats”)
如果jsonArray不是什么都不是
对于jsonArray中的每个o作为JObject。子对象(属于JObject)()
如果是o(“key”).ToString()键,则继续
Console.WriteLine(o(“value”).ToString()
退出
下一个
如果结束
选项#2:使用前面提到的SelectToken

Dim jsonObject为Newtonsoft.Json.Linq.JObject=Newtonsoft.Json.Linq.JObject.Parse(serializedJsonString)
将jsonArray设置为JArray=jsonObject(“lifeTimeStats”)
如果jsonArray不是什么都不是
对于jsonArray中作为JObject的每个项目
如果item.SelectToken(“key”).ToString key,则继续
Console.WriteLine(item.SelectToken(“value”).ToString)
退出
下一个
如果结束

执行如下操作(请用json变量替换serializedJsonString):

选项1:

Dim jsonObject为Newtonsoft.Json.Linq.JObject=Newtonsoft.Json.Linq.JObject.Parse(serializedJsonString)
将jsonArray设置为JArray=jsonObject(“lifeTimeStats”)
如果jsonArray不是什么都不是
对于jsonArray中的每个o作为JObject。子对象(属于JObject)()
如果是o(“key”).ToString()键,则继续
Console.WriteLine(o(“value”).ToString()
退出
下一个
如果结束
选项#2:使用前面提到的SelectToken

Dim jsonObject为Newtonsoft.Json.Linq.JObject=Newtonsoft.Json.Linq.JObject.Parse(serializedJsonString)
将jsonArray设置为JArray=jsonObject(“lifeTimeStats”)
如果jsonArray不是什么都不是
对于jsonArray中作为JObject的每个项目
如果item.SelectToken(“key”).ToString key,则继续
Console.WriteLine(item.SelectToken(“value”).ToString)
退出
下一个
如果结束

YourSomething=Jobject.Parse(YourJSON)(“platformId”)会得到一个3@CruleD但是这也适用于键值JSON部分吗?@Jul79能否请您使用示例输入键和您的帖子的预期输出更新您的帖子,以便帮助我们提供工作答案。然后使用(“lifeTimeStats”)(x)(“key”)和(“lifeTimeStats”)(x)进行更新(“value”),其中xis是数组的索引。@sam Done:“如果我想在“key”:“Matches Played”,在本例中是“20105”?“yoursothing=Jobject.Parse(YourJSON)(“platformId”)中获取“value”,该怎么办你会得到一个3@CruleD但是这也适用于键值JSON部分吗?@Jul79能否请您使用示例输入键和您的帖子的预期输出更新帖子,以便帮助我们提供工作答案。然后使用(“lifeTimeStats”)(x)(“key”)和(“lifeTimeStats”)(x)(“value”),其中数组的xis索引。@sam Done:如果我想在“键”处获取“值”:“播放的比赛”,在本例中为“20105”,该怎么办
Public Class Statistics
    Public Property platformId As Integer
    Public Property platformName As String
    Public Property platformNameLong As String
End Class
Label1.Content = Data.platformNameLong
{
 "lifeTimeStats": [
    {
      "key": "Score",
      "value": "7,919,327"
    },
    {
      "key": "Matches Played",
      "value": "20105"
    ]
}
Dim jsonObject As Newtonsoft.Json.Linq.JObject = Newtonsoft.Json.Linq.JObject.Parse(serializedJsonString)
    Dim jsonArray As JArray = jsonObject("lifeTimeStats")                   

    If jsonArray IsNot Nothing Then

        For Each o As JObject In jsonArray.Children(Of JObject)()
            If o("key").ToString() <> key Then Continue For
            Console.WriteLine(o("value").ToString())
            Exit For
        Next
    End If
Dim jsonObject As Newtonsoft.Json.Linq.JObject = Newtonsoft.Json.Linq.JObject.Parse(serializedJsonString)
Dim jsonArray As JArray = jsonObject("lifeTimeStats")                   

If jsonArray IsNot Nothing Then

    For Each item As JObject In jsonArray
        If item.SelectToken("key").ToString <> key Then Continue For
        Console.WriteLine(item.SelectToken("value").ToString)
        Exit For            
     Next
End If