如何使用Newtonsoft.Json生成这样的json字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Newtonsoft.Json生成这样的json字符串相关的知识,希望对你有一定的参考价值。

参考技术A 用一个对象列表
public class Category

Name get;set;
IList<Room> Rooms get;set;


public class Room

Name get;set
ID get;set;


给IList<Category>赋值,再用Newtonsoft.Json来生成就行了...

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

【中文标题】如何使用 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字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Asp.net Core Web Api 中默认使用 Newtonsoft.Json?

如何使 Newtonsoft.Json.Linq.JObject 不可变?

VS2013项目生成报“Newtonsoft.Json”已拥有为“Microsoft.CSharp”定义的依赖项。"

FineUI中Newtonsoft.Json版本报错解决办法

Swagger UI 不使用 Newtonsoft.Json 序列化十进制,而是使用 System.Text.json

C#利用newtonsoft.json读取.so配置文件内容