Ярлыки

.Net (17) (9) 1с8 (4) 1с8.2 УП (3) документирование (1) интеграция (10) карта (1) собеседование (1) ado (1) ajax (11) ASP (1) asp.net (10) authentication (1) c# (14) coding (2) Crm Ribbon (2) csv (1) datareader (1) delegate (5) dhtml (5) exam (1) excel (10) ext (1) extjs (8) google maps (1) iis (3) javascript (33) JSON (5) linq (1) LN (5) log (1) lotus notes (5) mail (1) MS CRM (63) MS CRM 2015 (3) MS CRM 5 (48) MS CRM 6 (28) ms office (2) msi (1) MVC (1) namespace (1) oData (3) outlook (1) parent-child (2) plugin (1) program (4) Project Management (1) remote debugger (1) REST (1) SharePoint (1) SharePoint 2010 (2) Silverlight (2) soft (1) sql (13) sql reporting service (8) sql2005 (3) ssrs (2) Thread (4) tree (1) vb (6) vba (1) VSTO (1) WCF (4) wmi (1) wsc (2) xml (1) Xrm.Page (1) xslt (1)

среда, 18 мая 2016 г.

C#:Десериализация Json в dynamic

Прием с использованием сборок/классов из MVC. Там в namespace System.Web.Helpers есть класс Json, метод Decode всё делает сам.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
// System.Web.Helpers.dll 
// Это из MVC. Если не установлен, то в студии Tool-NuGet Package manager- установить MVC
// http://stackoverflow.com/questions/32342104/mvc-4-project-does-not-resolve-reference-to-system-web-helpers-in-vs-2015
using System.Web.Helpers;

namespace JsonDeserial
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        private void btnDeserial_Click(object sender, EventArgs e)
        {
            var dynObj = Json.Decode(txtJson.Text);
            var counter1 = 1;
            foreach(var o1 in dynObj)
            {
                txtResult.Text += counter1.ToString() + ": Date = " + o1.Date + Environment.NewLine;
                if (o1.Items != null)
                {
                    foreach (var o2 in o1.Items)
                    {
                        txtResult.Text += "\t" + o2.Name + " - " + o2.Price + Environment.NewLine;
                    }
                }
                counter1++;
            }
        }
    }
}


Комментариев нет: