Articles of json

如何以编程方式从动态JObject获取属性

我正在使用NewtonSoft JObject解析JSON字符串。 如何以编程方式从动态对象获取值? 我想简化代码,不要为每个对象重复自己。 public ExampleObject GetExampleObject(string jsonString) { ExampleObject returnObject = new ExampleObject(); dynamic dynamicResult = JObject.Parse(jsonString); if (!ReferenceEquals(dynamicResult.album, null)) { //code block to extract to another method if possible returnObject.Id = dynamicResult.album.id; returnObject.Name = dynamicResult.album.name; returnObject.Description = dynamicResult.albumsdescription; //etc.. } else if(!ReferenceEquals(dynamicResult.photo, null)) { //duplicated here returnObject.Id = dynamicResult.photo.id; returnObject.Name = dynamicResult.photo.name; returnObject.Description […]

在将C#对象序列化为JSON时,如何处理不同的命名约定?

我正在使用ASP.Net将C#中设计的类序列化为JSON。 我的Javascript应用程序然后使用AJAX请求这些对象。 我现在在几个项目上完成了这个,但是我遇到了C#标准命名约定为公共成员使用PascalCase的问题,而在Javascript中它们通常是camelCase。 当我有一些使用camelCase的Javascript-only类和一些使用PascalCase的混合使用类时,这尤其成为一个问题,因为我最初在C#中设计它们。 其他人如何处理这类问题? 你只挑选一个或另一个? 如果是这样,哪一个被更广泛地选择? 或者是否有一种聪明的方法来使用JSON序列化程序在两种命名约定之间切换?

使用Web Matrix助手进行C#JSON解码

我一直在寻找一种将JSON对象转换为动态对象的简洁方法。 (我可以转换为一个对象,但Twitter Streaming API实际上发送了两个不同的JSON对象,可能有未来的对象类型!) 我目前使用的代码来自: 将JSON反序列化为C#动态对象? 但它不是最干净的代码,我正在玩Web Matrix,并注意到它们有一个很好的JSON.Decode(字符串)和JSON.Encode(对象)方法,并希望利用它们。 http://msdn.microsoft.com/en-us/library/system.web.helpers.json(v=vs.99).aspx 添加对System.Web.Helpers的引用到我的C#控制台应用程序我设法编译一个调用JSON.Decode的解决方案但是……它引发了一个讨厌的exception。 这可能取决于我以非预期的方式使用它(在Web Matrix之外),但任何想法? 可能期待一个简单的,没有那个愚蠢的回答;-) 尝试通过方法’System.Web.Helpers.Json.Decode(System.String)’访问字段’System.Web.Helpers.Json._serializer’失败。 我正在使用VS2010。 更多细节:System.FieldAccessException被方法’System.Web.Helpers.Json.Decode(System.String)’捕获Message = Attempt以访问字段’System.Web.Helpers.Json._serializer’失败。 Source = System.Web.Helpers StackTrace:位于C:\ Users \ Administrator \ documents \ visual studio 2010 \ Projects \ ISMM中Components.DataCollection.ConvertTwitterStream.ConvertTweets()的System.Web.Helpers.Json.Decode(String value)处\ Components \ DataCollection \ ConvertTwitterStream.cs:第35行InnerException:

将空的js数组传递给控制器​​会给出null

这是我的模型,它是一个WCF代理类 public class MyModel { public Employees[] MyEmpls{get;set;} public int Id{get;set;} public OrgName{get;set;} } 将具有MyEmpls as empty array的下面的json结构对象MyEmpls as empty array传递给MVC控制器。 [“Id”:12, “MyEmpls”:[], “OrgName”:”Kekran Mcran”] 调节器 [HttpPost] public ActionResult SaveOrg(MyModel model) { //model.MyEmpls is null here } 我期待mode.MyEmpls为空c#数组而不是null。 有人可以帮助我吗? 我们需要为此编写自定义模型绑定器吗?

ServiceStack支持在每次调用的基础上有条件地忽略REST响应中的字段

至少,我正在寻找一种方法来有条件地排除资源上的某些属性,使其不被包含在每个呼叫的响应中(参见下面的fields )。 理想情况下,我想使用ServiceStack实现REST服务,该服务支持以下所有要点。 UPDATE 虽然我一般都非常喜欢ServiceStack的方法,但如果可能的话,我更愿意使用它,如果它不是特别适合这些想法,我宁可不要向后弯腰,让它变得有效。 如果是这样的话,任何人都可以指向另一个可能更合适的c#框架吗? 当然,我正在积极探索其他选择。 在本次题为“ 设计REST + JSON API ”的演讲中,演示者在JSON中描述了他的资源引用策略(通过资源上的href属性)。 除此之外,他还描述了两个查询参数( fields和expand ),用于控制调用REST服务的响应所包含的数据。 我一直在努力尝试挖掘ServiceStack框架以获得对fields支持,但迄今为止一直没有成功。 这在ServiceStack目前是否可行? 理想情况下,解决方案将与格式无关,因此可以使用所有ServiceStack支持的输出格式。 我认为expand将采用相同的策略。 我将在这里描述这些function,但我认为链接上的谈话可以更好地解释它们。 假设我们有一个Profiles资源,其中包含以下属性: givenName , surname , gender和favColor 。 “个人档案”资源还包括用户在socialNetworks属性中所属的社交网络列表。 href – (video中的42:22)每个资源都包含REST服务上的完整链接。 将返回对GET /profiles/123调用 { “href”:”https://host/profiles/123″, “givenName”:”Bob”, “surname”:”Smith”, “gender”:”male”, “favColor”:”red”, “socialNetworks”: { “href”:”https://host/socialNetworkMemberships?profileId=123″ } } 请注意, socialNetworks属性返回的对象仅填充了href值。 这样可以使响应更短且更集中,同时还为最终用户提供足够的信息,以便在需要时提供进一步的请求 在这个庄园中全面使用的href属性使得重用资源数据结构作为其他资源的子项变得容易(概念上无论如何)。 fields – (video中55:44)查询字符串参数,指示服务器仅在REST响应中包含所需资源的指定属性。 GET /profiles/123正常响应将包括资源的所有属性,如上所示。 当fields查询参数包含在请求中时,仅返回指定的字段。 […]

如何在Windows Phone 7中显示Json数据

我是Windows手机的初学者,我不知道如何从JSON字符串填充列表框。 在我的应用程序中,将有一个来自Web服务的Json String。 所以,这是我的json String [json Array]: { “type”:”ok”, “result”: { “Country”:[{ “title”:”Country-1″, “description”:”US”, “status”:”1″ }, { “title”:”Country-2″, “description”:”Australia”, “status”:”0″ }, { “title”:”Country-3″, “description”:”Brazil, “status”:”0″ } ] } } 我想在我的应用程序中的列表框中绑定它。 我真的不知道,如何在列表框中绑定。 请给我完整的xaml和c#代码。

如何从C#上的json读取数据

我有以下json对象,我传递给我的c#服务器 [ { “ID”: 1, “FirstName”: “Jay”, “LastName”: “Smith” }, { “ID”: 2, “FirstName”: “Rich”, “LastName”: “Son” }, { “ID”: 3, “FirstName”: “Emmy”, “LastName”: “Wat” } ] 我像这样创建一个类 public class Person { public int ID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } } 当我这样做 […]

断言包含匿名类型的JsonResult

我试图在我的一个控制器中unit testing一个方法,返回一个JsonResult。 令我惊讶的是,以下代码不起作用: [HttpPost] public JsonResult Test() { return Json(new {Id = 123}); } 这是我测试它的方式(还要注意测试代码驻留在另一个程序集中): // Act dynamic jsonResult = testController.Test().Data; // Assert Assert.AreEqual(123, jsonResult.Id); Assert引发exception: ‘object’不包含’Id’的定义 我已经通过使用以下方法解决了它: [HttpPost] public JsonResult Test() { dynamic data = new ExpandoObject(); data.Id = 123; return Json(data); } 我试图理解为什么不是第一个工作? 它似乎也基本上可以用于任何匿名类型。

JsonObject模拟Facebook SDK

我必须使用facebook c#sdk作为.net 3.5中的新项目,我知道最新版本有4个示例 – 但它也是针对3.5编译的,所以完全可以工作。 无论如何,如果我非常愚蠢,请原谅我。 但我正在寻找将json对象转换为我的模型,我可以做这样的事情吗? public ActionResult About() { var app = new FacebookApp(); JsonObject friends = (JsonObject)app.Get(“me/friends”); ViewData[“Albums”] = new Friends((string)friends.ToString()); return View(); } public class Friends { public string name { get; set; } public string id { get; set; } public Friends(string json) { JArray jObject = JArray.Parse(json); JToken jData […]

哪个Json反序列化器呈现IList 集合?

我正在尝试将json反序列化为对象模型,其中集合表示为IList类型。 实际的反序列化在这里: JavaScriptSerializer serializer = new JavaScriptSerializer(); return serializer.Deserialize<IList>( (new StreamReader(General.GetEmbeddedFile(“Contacts.json”)).ReadToEnd())); 在我发布exception之前,我知道你应该知道隐含的转换是什么。 这是Contact类型: public class Contact { public int ID { get; set; } public string Name { get; set; } public LazyList Details { get; set; } //public List Details { get; set; } } 这是ContactDetail类型: public class ContactDetail { public int ID { […]