2017-04-21 75 views
0

WCF服务正在返回其由客户端应用消耗的这JSON数据被捕获在一个对象和它的反序列化,并存储在动态数据类型JSON数据,如图WCF服务将返回其由客户端应用消耗的这JSON数据被捕获在一个对象和它的反序列化并且如图获取数据时动态数据存储在动态数据类型

dynamic data = JsonConvert.DeserializeObject(retVal.ToString()); 

存储在动态数据类型,其中retVal的是我的JSON数据是

  {"txtEmpNoTo":123,"Name":"Leonel Messi"} 
一个JSON数据

和数据的数目可能会有所不同

我不知道什么是财产存在和价值,以及。我如何在不知道财产的情况下获取数据。

回答

0

您可以阅读json不使用Dictionary<TKey, TValue>知道属性名称。只要你convertjson使用Dictionary<TKey, TValue>JsonConvert.DeserializeObject。请检查下面的代码。

CODE:

using System; 
using Newtonsoft.Json; 
using System.Collections.Generic; 

public class Program 
{ 
    public static void Main() 
    { 
     Console.WriteLine("Example #1"); 
     string retVal = "{\"txtEmpNoTo\":123,\"Name\":\"Leonel Messi\"}"; 
     Dictionary<string, string> values = JsonConvert.DeserializeObject<Dictionary<string, string>>(retVal); 
     foreach(var item in values) 
     { 
      Console.WriteLine(item.Value); 
     } 
     Console.WriteLine(""); 

     Console.WriteLine("Example #2"); 
     retVal = "{\"txtEmpNoTo\":123,\"Name\":\"Leonel Messi\",\"Team\":\"FC Barcelona\"}"; 
     values = JsonConvert.DeserializeObject<Dictionary<string, string>>(retVal); 
     foreach(var item in values) 
     { 
      Console.WriteLine(item.Value); 
     } 
     Console.WriteLine(""); 

     Console.WriteLine("Example #3"); 
     retVal = "{\"txtEmpNoTo\":123,\"Name\":\"Leonel Messi\",\"Team\":\"FC Barcelona\",\"Squad Number\":10,\"Date of Birth\":\"24-Jun-1987\"}"; 
     values = JsonConvert.DeserializeObject<Dictionary<string, string>>(retVal); 
     foreach(var item in values) 
     { 
      Console.WriteLine(item.Value); 
     } 
    } 
} 

输出:

enter image description here

您可以运行,并检查它在DotNetFiddle