I have an object called MyObject that has several properties. MyList is a list of MyObject that I populate with a linq query and then I serialize MyList into json. I end up with something like this
List<MyObject> MyList = new List<MyObject>();
MyList = TheLinqQuery(TheParam);
var TheJson = new System.Web.Script.Serialization.JavaScriptSerializer();
string MyJson = TheJson.Serialize(MyList);
What I want to do is serialize only parts of MyObject. For instance, I might have Property1, Property2...Propertyn and I want MyJson to only include Property3, Property5 and Property8.
I thought of a way to do this by creating a new object with only the properties I want and from there create a new list for the serialization.
I am getting an error when trying to serialize an object products. Product product = new Product(); product.Name = "Apple"; product.Expiry = new DateTime(2008, 12, 28); product.Price = 3.99M; product.Sizes = new string[3,2] { {"Small","40"}, {"Medium","44"}, {"Large","50"} }; string json = JsonConvert.SerializeObject(product);//this line is throwing an error
Array was not a one-dimensional array. Is there any way to serialize a two dimensional array with Newtonsoft.json.
I have a WCF service that when the objects serialize to clients an extra property is getting added with a 'Speficied' suffix. At first I thought it had to to with a couple of nullable type properties, but it is happening to all of my value types even if it is not declared Nullable. How can I get rid of this?
Is it possible to serialize object direct from Visual Studio .NET Debug window. I have a very complex object structure which contains multiple sub objects along with List item etc. I mean the Hierarchy is complex. And I need to analyze the object graph closely for that I need an offline view (may be in the from of XML/ Serialization). I can not do that from VS.
(One can reccomend me to use XMLSeriliazation in my code to generate but please consider that may not be alwways possible because of
1. with default .NET Serialization class a complex object which has manu sub objcts with Collection. is not get serialized properly. So need custom serialization & deserilazation code for that, does not come witf Microsoft Librarry.)
2. I am using it somewhere (Silverlift app) where such operation may be not possible.
3. I do not want to spent time creating or evaluating any ones custom serilaization code/tool
I use the JavaScriptSerializer class of ASP.net to serialize my object and return it to the client side. How can I deserialize the string using JavaScript?
I have an Entity Framework data model. Part of the model is a Customer entity. The web service provides a method to get a customer, and to receive an updated version of this customer to be persisted.
To test this, I created a new ASP.NET web Application, (Solution > Add > New Project > ASP.NET Web Application), then added a reference to my service reference using the standard Add Service Reference dialog. I then call the service using the following code:
var client = new CustomerServiceClient(); var customer = client.GetCustomerByID(18); // get it customer.LimitDown = 100; // change it client.SaveCustomer(customer); // persist it
Everything works as expected.
Now, I do exactly the same thing, but this time with as ASP.NET Web Site (Solution > Add > New Web Site > ASP.NET Web Site). I add the reference in a similar fashion and copy and paste the code above into the new site. But now I get the following exception thrown on the 4th line:
System.InvalidOperationException The EntityReference object could not be serialized. This type of object cannot be serialized when t RelationshipManager belongs to an entity object that does not implement IEntityWithRelationships.
Source Error:
Line 2474: Line 2475: public SkyWalkerCustomerService.OperationResult SaveCustomer(SkyWalkerCustomerService.Customer[code]....
Googling for this error returns very little. Why doesn't this work?I guess one answer would be to use a web application instead of a web site, but I have an large existing site to which I need to add the service reference, and I'd rather not convert it.
I've scenario where I want to insert data into database without post back. there are around 12 to 13 fields which i need to insert. I'm passing DTO from the client side which is actually Json object. Now the problem which i'm facing is how to convert that Json object which i got in webservice to the "class" (in my case class name is User) object.
[Code]....
In the above case AddNewUser method takes the object of User class. But i'm getting casting error. So how do I convert Json object to the "User" class object?
Is there an easy way to populate my C# Object with the JSON object passed via AJAX?
//This is the JSON Object passed to C# WEBMETHOD from the page using JSON.stringify {"user":{"name":"asdf","teamname":"b","email":"c","players":["1","2"]}} //C# WebMetod That receives the JSON Object [WebMethod] public static void SaveTeam(Object user) { } //C# Class that represents the object structure of JSON Object passed in to the WebMethod public class User { public string name { get; set; } public string teamname { get; set; } public string email { get; set; } public Array players { get; set; } }
From VB.net code behind when I am trying to deserialize it it's stating that
"Expecting state 'Element'.. Encountered 'Text' with name '', namespace ''."
Deserialization code snippet:
Dim serializer = New DataContractJsonSerializer(GetType(List(Of Employee))) Dim memoryStream = New MemoryStream() Dim s = msg.Content.ReadAsString() serializer.WriteObject(memoryStream, s) memoryStream.Position = 0.......
I want to serialize an object to json, so I'm using [Code]....
[Code]....
This is fine, but I want to return different json datasets depending on the circumstances. Lets say I have this object (a simplified example):
[DataContract] class foo { [DataMember] int productId [DataMember] string productName double price; //not used in json.. yet }
Which will serialize to a json object containing the product name & Id, but what if I also need to be able to return a different json object (say, productId and price but not name)? Can this be done somehow in the same object using WCF/DataContracts and DataMembers? This will be sent in an ajax query containing a collection of objects and needs to fast, so just including every member in every type of json request whether it's needed or not isn't a good solution.
I could use the DataContractJsonSerializer Class and have custom Classes defined. However, am not sure how keys like "$" would get converted to in .Net.
I am unable to convert JSON string to .net object in asp.net. I am sending JSON string from client to server using hidden field (by keeping the JSON object.Tostring() in hidden field and reading the hidden field value in code behind file)
I have a json object collection of geo locations that I build in the server. Each of those objects has two properties: "marker" and "onClick". Marker is for storing a Google Maps marker object and the onClick stores the name of the function to be called when that marker is clicked on the map.When I'm pushing the location objects into an array using javascript in the client side, I create the markers and assign them to each location object within the array.
My problem is that when I bind the marker with the onClick property, the function won't be found in the DOM and get an error.Is there a way to declare a property in a json object for using it on an event binding?
My json response contains json with structure (eg. "[[[],[]]]") but no actual content.
AJAX code:
[Code]....
It definitely recognizes structure (if I change the xml nodes, it reflects in the []'s) but just isn't inserting any content. I tried prefixing the web method with "<ScriptMethod(ResponseFormat:=ResponseFormat.Json)>" but it made no difference.
I have a list of person objects which I want to send in response to a jquery' ajax request. I want to send the list into JSON format. The list is as follows -
List<Person> PersonList = new List<Person>(); Person Atiq = new Person("Atiq Hasan Mollah", 23, "Whassap Homie"); Person Sajib = new Person("Sajib Mamud", 24, "Chol kheye ashi"); PersonList.Add(Atiq); PersonList.Add(Sajib);
How can I convert the "PersonList" list into JSON ?
I've created a simple (or what I thought was simple!) search form using Razor, MVC3 and the webgrid from the web helpers. I enabled paging, used a great article I found here to get that working... or so I thought. Basically what happens is that when I click the page buttons at the bottom of the grid it does something that I didn't expect, and creates a JSON object, then the browser prompts me to try and save it, and not as I expected to refill the grid. I can't see what I'm doing wrong, and before I break my monitor by throwing it onto the railway line!
[Code]....
My jQuery code
[Code]....
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MvcApplication1.Models; using System.Configuration; using System.Web.Helpers; namespace MvcApplication1.Controllers { public class SearchController : Controller { // // GET: /Search/ Entities t = new Entities(ConfigurationManager.ConnectionStrings["Entities"].ConnectionString); public ActionResult Details(int id) { Tender_Question q = (from x in t.Tender_Questions where x.Unique_ID_number == id select x).SingleOrDefault(); Customer c = (from cu in t.Customers where cu.CustomersID == q.Company select cu).SingleOrDefault(); ViewBag.Customers = c.CompanyName; Panel_type pan = (from pa in t.Panel_types where pa.ID == q.Panel_type select pa).SingleOrDefault(); ViewBag.Panel = pan.Panel_type1; return View(q); } [HttpGet] public ActionResult Edit(int id) { Tender_Question q = (from x in t.Tender_Questions where x.Unique_ID_number == id select x).SingleOrDefault(); List<Customer> c = (from cu in t.Customers select cu).ToList(); ViewBag.Customers = c; return View(q); } [HttpPost] public ActionResult Edit(Tender_Question model) { if (ModelState.IsValid) { Tender_Question q = (from x in t.Tender_Questions where x.Unique_ID_number == model.Unique_ID_number select x).SingleOrDefault(); q.Answer = model.Answer; q.Company = model.Company; q.Customer = model.Customer; q.Date = model.Date; q.Page_Question_Ref = model.Page_Question_Ref; q.Panel_type = model.Panel_type; q.Question = model.Question; q.Type_of_tender = model.Type_of_tender; //add update code t.SaveChanges(); return RedirectToAction("Index"); } else { return View(model); } } [HttpGet] public ActionResult Search(int? page) { if (page.HasValue) { return RedirectToAction("EfficientPaging", new { page = page }); } else { return View(); } } [HttpPost] public ActionResult Search(int? page, FormCollection collection) { TempData.Clear(); IEnumerable<Tender_Question> q = getSearch(collection); TempData.Add("Results", q); return View(q); } private IEnumerable<Tender_Question> getSearch(FormCollection collection) { string question; string answer; IEnumerable<Tender_Question> q = t.Tender_Questions; question = collection["Question"]; answer = collection["Answer"]; if (!string.IsNullOrEmpty(question)) { if (question.EndsWith(",")) { question = question.Substring(0, question.Length - 1); } if (question.Length > 0) { if (question.Contains(",")) { string[] questioned = question.Split(','); foreach (string s in questioned) { q = q.Where(m => m.Question.Contains(s)); } } else { q = q.Where(m => m.Question.Contains(question)); } } } if (!string.IsNullOrEmpty(answer)) { if (answer.EndsWith(",")) { answer = answer.Substring(0, answer.Length - 1); } if (answer.Length > 0) { if (answer.Contains(",")) { string[] answered = answer.Split(','); foreach (string s in answered) { q = q.Where(m => m.Answer.Contains(s)); } } else { q = q.Where(m => m.Answer.Contains(answer)); } } } return q; } [HttpGet] public ActionResult EfficientPaging(int? page) { IEnumerable<Tender_Question> q = (IEnumerable<Tender_Question>)TempData["Results"]; int skip = page.HasValue ? page.Value - 1 : 0; q = q.OrderBy(o => o.Unique_ID_number).Skip(skip * 10).Take(10).ToList(); var grid = new WebGrid(q); var column = new WebGridColumn(); column.CanSort = false; column.ColumnName = "Unique_ID_number"; column.Header = "Edit"; column.Format = (item) => { return new HtmlString("<a href="/Home/Edit/" + column.ColumnName + "">Edit</a> "); }; var detcolumn = new WebGridColumn(); detcolumn.CanSort = false; detcolumn.ColumnName = "Unique_ID_number"; detcolumn.Header = "Details"; detcolumn.Format = (item) => { return new HtmlString("<a href="/Home/Details/" + column.ColumnName + "">Details</a> "); }; var htmlString = grid.GetHtml(htmlAttributes: new { id = "DataTable" }, columns: grid.Columns( column, detcolumn, grid.Column("Question"), grid.Column("Answer"), grid.Column("Company"), grid.Column(columnName: "Type_of_tender", header: "Type of Tender"), grid.Column(columnName: "Panel_type", header: "Panel type"), grid.Column(columnName: "Page_Question_Ref", header: "Page Question Ref"), grid.Column("Date") )); return Json(new { Data = htmlString.ToHtmlString(), Count =q.Count() / 10 }, JsonRequestBehavior.AllowGet); } } }
public class AccessToken { public string access_token {get;set;} public DateTime expires { get; set; } } public class TokenReturn { public List<AccessToken> tokens { get; set; } } JavaScriptSerializer ser = new JavaScriptSerializer(); TokenReturn result = ser.Deserialize<TokenReturn>(responseFromServer);
I'm new to Jquery, JSON and MVC, and am trying to create a json object that contains AD info from an AD query. The ad query is working fine and returning data and I have 2 overloaded implementations of it.
#1 is a method from an older .net app that builds and returns a datatable that we bound to a grid view control
#2 was a modification of #1 that returns a System.Collections.Generic.List<> type. #2 returns data ok and i can display a table in the MVC view
however, I'd like to get the data results into a json object so i can bind it to a jqGrid object that has similar functionality to the old .Net server controls (Delete, Update, Sort) Here's the new method that's part of a C# static class:
[Code]....
Like I said...I'm new to this way of doing web development, so I'm not sure how to even approach getting this data into a json object.