相关疑难解决方法(0)

Newtonsoft JSON反序列化

我的JSON如下:

{"t":"1339886","a":true,"data":[],"Type":[['Ants','Biz','Tro']]}
Run Code Online (Sandbox Code Playgroud)

我找到了针对C#的Newtonsoft JSON.NET反序列化库.我尝试使用它如下:

object JsonDe = JsonConvert.DeserializeObject(Json); 
Run Code Online (Sandbox Code Playgroud)

如何访问该JsonDe对象以获取所有"类型"数据?我尝试了一个循环,但它没有工作,因为该对象没有枚举器.

c# json.net deserialization

78
推荐指数
3
解决办法
22万
查看次数

如何反序列化具有无效字段名称的JSON对象

我有一个JSON请求,其结构如下:

"formats":  {
        "flash_embed": "http://a3.vikiassets.com/assets/vikiplayer-922746a667cfd38137a7e45df6ba1b95.swf?auto_play=true&language_codes=en&media_id=74965&partner=16&source=api_v3",
        "m3u8": "http://wpc.354a.edgecastcdn.net/00354A/videos/encoded/74965/ios.m3u8",
        "res-150p": "http://wpc.354a.edgecastcdn.net/00354A/videos/encoded/74965_mp4cell_150.mp4",
        "res-240p": "http://wpc.354a.edgecastcdn.net/00354A/videos/encoded/74965_240p.mp4",
        "res-270p": "http://wpc.354a.edgecastcdn.net/00354A/videos/encoded/74965_270p.mp4",
        "res-360p": "http://wpc.354a.edgecastcdn.net/00354A/videos/encoded/74965_360p.mp4",
        "res-480p": "http://wpc.354a.edgecastcdn.net/00354A/videos/encoded/74965_480p.mp4",
        "res-720p": "http://wpc.354a.edgecastcdn.net/00354A/videos/encoded/74965_720p.mp4"
      }
    }
Run Code Online (Sandbox Code Playgroud)

现在res-150p,在C#中说出无效名称,如果我给它另一个名字,那么在取消手术时我没有得到任何值,在res-150p内是null.

编辑: [Serializable] MoviesListRootObject是包含Response然后Response包含的根对象Formats

public class MoviesListRootObject
{
    public int count { get; set; }
    public Pagination pagination { get; set; }
    public List<Response> response { get; set; }
}

[Serializable]
public class Response
{
    public int id { get; set; }
    public int channel_id { get; set; }
    public string title { …
Run Code Online (Sandbox Code Playgroud)

.net c# json json.net

16
推荐指数
1
解决办法
7473
查看次数

无法将JSON数组反序列化为类型--Json.NET

我试图将json数据反序列化为模型类,但我失败了.这是我做的:

    public CountryModel GetCountries() {

        using (WebClient client = new WebClient()) {

            var result = client.DownloadString("http://api.worldbank.org/incomeLevels/LIC/countries?format=json");

            var output = JsonConvert.DeserializeObject<List<CountryModel>>(result);

            return output.First();
        }
    }
Run Code Online (Sandbox Code Playgroud)

这就是我的模型的样子:

public class CountryModel
{
    public int Page { get; set; }
    public int Pages { get; set; }
    public int Per_Page { get; set; }
    public int Total { get; set; }

    public List<Country> Countries { get; set; }
}

public class Country
{
    public int Id { get; set; }
    public string Iso2Code { …
Run Code Online (Sandbox Code Playgroud)

.net c# serialization json json.net

10
推荐指数
2
解决办法
4万
查看次数

无法找到编译动态表达式所需的一种或多种类型

我在Visual Studio 2010上使用Windows Phone 7.1应用程序.我尝试这样做:

dynamic dyn = JsonConvert.DeserializeObject(json);
MessageBox.Show(dyn.somevar);
Run Code Online (Sandbox Code Playgroud)

我有这个错误:

无法找到编译动态表达式所需的一种或多种类型.您是否缺少对Microsoft.CSharp.dll和System.Core.dll的引用?

我试图添加,C:\Program Files (x86)\Microsoft SDKs\Silverlight\v4.0\Libraries\Client\Microsof.CSharp.dll但它不起作用.

我现在能做什么?

.net c# dynamic windows-phone-7

5
推荐指数
1
解决办法
3447
查看次数

将JSON响应流转换为字符串

我正在尝试POST,然后将JSON响应读入字符串.

我相信我的问题是我需要将自己的对象传递给DataContractJsonSerializer,但我想知道是否有某种方法可以将响应转换为关联数组或某种键/值格式.

我的JSON格式如下:{"license":"AAAA-AAAA-AAAA-AAAA"},我的代码如下:

using (Stream response = HttpCommands.GetResponseStream(URL, FormatRegistrationPost(name, email)))
{
   string output = new StreamReader(response).ReadToEnd();
   response.Close();

   DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(string));
   MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(output));
   string results = json.ReadObject(ms) as string;

   licenseKey = (string) results.GetType().GetProperty("license").GetValue(results, null);
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

.net c# json

4
推荐指数
1
解决办法
3万
查看次数

将 json 动态反序列化为传入的任何对象。 c#

我正在尝试将 json 反序列化为 c# 中的对象。我希望能够做的是传递任何对象获取它的类型并使用 JSON.Net 库将 json 反序列化为该特定对象。这是代码行。

 Object someObject1 = someObject;
 string result = await content.ReadAsStringAsync();
 return JsonConvert.DeserializeObject<someObject1.GetType()>(result);
Run Code Online (Sandbox Code Playgroud)

最后一行抛出异常

 operator '<' cannot be applied to operands of type 'method group'
Run Code Online (Sandbox Code Playgroud)

如何在没有 c# 抱怨的情况下获取 <> 中的数据类型。我该怎么做才能使此代码正常工作?我缺少什么知识?

c# serialization json json.net

3
推荐指数
1
解决办法
7235
查看次数

无法反序列化当前的JSON对象(例如{"name":"value"})

这是我的JSON数据

{
    "logInResult": [
        {
            "Name": "yogesh singh",
            "cityName": "",
            "img": "DefaultImage/D_Vp_Men.png",
            "usrId": "374"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

这是我的代码

public async Task<ActionResult> Index()
{

    HttpClient webClient1 = new HttpClient();
    Uri uri = new Uri("http://m.vinipost.com/service/userprofile.svc/logIn?loginId=thyschauhan@gmail.com&pass=12345");

    HttpResponseMessage response1;

    response1 = await webClient1.GetAsync(uri);

    var jsonString = await response1.Content.ReadAsStringAsync();

    var _Data = JsonConvert.DeserializeObject<List<JClass>>(jsonString);
    foreach (JClass Student in _Data)
    {
        ViewBag.Message += Student.Name + ", ";
    }
    dynamic obj = JsonConvert.DeserializeObject(jsonString);
    ViewBag.Message += obj.data.Name;

    return View();
}
Run Code Online (Sandbox Code Playgroud)

而错误是

无法将当前JSON对象(例如{"name":"value"})反序列化为类型'System.Collections.Generic.List`1 [MvcSumit1.Models.JClass]',因为该类型需要JSON数组(例如[1, 2,3])正确反序列化.要修复此错误,请将JSON更改为JSON数组(例如[1,2,3])或更改反序列化类型,使其成为普通的.NET类型(例如,不是像整数这样的基本类型,而不是类似的集合类型可以从JSON对象反序列化的数组或List.JsonObjectAttribute也可以添加到类型中以强制它从JSON对象反序列化.路径'logInResult',第1行,第15位.

c# json json.net

2
推荐指数
2
解决办法
3万
查看次数

Asp.net Webforms:为 typeform 创建 webhook 接收器

我如何使用 Typeform 的 asp.net Web 表单制作 webhook 接收器,以及每当有人提交我的表单时我如何获取我的应用程序上的数据。

asp.net webforms webhooks typeform

2
推荐指数
1
解决办法
1509
查看次数