如何使用 Newtonsoft.JSON 解析 JSON 响应? [复制]

Posted

技术标签:

【中文标题】如何使用 Newtonsoft.JSON 解析 JSON 响应? [复制]【英文标题】:How to parse JSON response using Newtonsoft.JSON? [duplicate] 【发布时间】:2014-03-21 11:20:23 【问题描述】:

我是 C# Windows Phone 编程的初学者。我正在开发一个应用程序,在该应用程序中,我使用 Web 客户端从站点获取 JSON 响应,但我不知道如何解析它。 你能帮我解决这个问题吗?

代码:

public partial class MainPage : PhoneApplicationPage
    
        // Constructor
        public MainPage()
        
            InitializeComponent();
        

        private void btnRefreshTweets_Click(object sender, RoutedEventArgs e)
        
            string winPhoneGeekTweetsUrl = @"http://ffff.xxxx.nxt/wpjson.php";

            WebClient webClient = new WebClient();
            webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClient_DownloadStringCompleted);
            webClient.DownloadStringAsync(new Uri(winPhoneGeekTweetsUrl));
        

        void webClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
        
            if (e.Error != null)
            
                return;
            
            MessageBox.Show(e.Result );//-->this is where JSON response is displayed


          
    

wpjson.php

<?php
mysql_connect("mysql2.000webhost.com","12345","12345");
mysql_select_db("a1111111_forms");
$sql=mysql_query("SELECT * FROM newstable");
while($row=mysql_fetch_assoc($sql))
$output[]=$row;
    echo json_encode($output);
?>

我还希望它显示在列表中。

【问题讨论】:

【参考方案1】:

使用http://json2csharp.com/ 创建您的JsonClasse

或使用visual studio =&gt; edit =&gt; special past

并使用Newtonsoft.Json.JsonConvert.DeserializeObject&lt;jsonClass&gt;(result);

【讨论】:

【参考方案2】:

复制所有的json。

创建任何名称的新类,将其命名为“jsonClass”,然后在该类中转到编辑-> 粘贴特殊-> 将 json 粘贴为类。

Visual Studio 会根据你的 json 字符串自动为你生成类。

你可以根据你的json字符串手动改正。

将你的 json 字符串放入一个变量名中。

jsonClass posts2 = Newtonsoft.Json.JsonConvert.DeserializeObject<jsonClass>(result.ToString());

它将您的 json 字符串映射到 C# 对象。

【讨论】:

我正在动态获取 JSON 数据 其中必须有特定的模式。例如,在第一次通话时我得到这个字符串 “id”:“1492292372”,“first_name”:“Yawar”,第二次我得到这个 “id”:“1492292372”,“last_name”:“Yawar” 所以我的课会像这个 public class jsonClass string id get;设置;字符串first_name get;设置;字符串姓氏get;设置; NewtonSoft 会根据名称自动映射字符串,所以你应该将变量命名相同。 完成所有如何显示它 像 C# 对象一样简单地处理它。

以上是关于如何使用 Newtonsoft.JSON 解析 JSON 响应? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

使用 Newtonsoft.Json 解析 JSON 时出错

C# unity (发布到安卓端中使用)解析json字符串—使用微软官方的包Newtonsoft.Json

C# unity (发布到安卓端中使用)解析json字符串—使用微软官方的包Newtonsoft.Json

C# unity (发布到安卓端中使用)解析json字符串—使用微软官方的包Newtonsoft.Json

Newtonsoft.Json解析数组

Newtonsoft.Json解析数组