Deserializing A PHP Json Encoded (json_encode) String With .NET Webservices
Feb 22, 2011
I am really struggling deserializing a PHP json encoded string in ASP.NET.I am using nusoap and CakePHP 1.3 on the PHP side and mvc.net 4.0 on the web service side and everything was working well. However, I couldn't figure out how to pass a complex array as one parameter of the webservice, so I had the idea of serializing it as json and passing a simple string. So far so good...
We are sending an HTML encoded string in the Query string. It was working fine on IIS 6 (windows 2003). We have recently moved the website to Windows 2008 (IIS 7.x). Since the move any Query String that contains "+" sign i.e., "%2b" gives error on the server "404 -File or directory not found."
Another beginner question, I'm afraid... I was wondering if someone could tell me the easiest and most efficient way of getting the fully qualified domain name (e.g. www.google.com) from a UrlEncoded string in ASP.Net (C#).For example: http%3A%2F%2Fwww.google.com%2Fsearch%3Fq%3Dsome%20things%20i%20searched%20forWould give me: www.google.com(Or basically anything where I can check the domain to make sure it's correct.)I'm guessing the first step might be to UrlDecode, but since this is how I'm getting the string, I thought I'd mention it incase it's easier Encoded.
I am using a third party Web Service. I am passing a string to a function in that service, that string, which i am reading from a UTF-8 text file. The problem it that the string contain some non ASCII characters.
Now if i save that text file to ANSI format, read it in a string and pass that string to Service then it works smoothly but with UTF-8 encoded string the service throw exception [Code]....
NON ASCII characters UTF-8 encoding SOAP
I am using ASP.NET.
Third party sevice is in java. I also tried it by making a web service in .net, but there was issue there too.
I'm using ASP.NET with sql-server. I have an area where the user can enter text of a maximum amount. I encode this text as a good measure but the encoded length can be greater than this maximum amount when I try to insert it into the database.
Special characters are encoded on 3 characters. I can't show the user that he has exceeded the max amount of characters because from his perspective he hasn't. I also can't set the database field to the worst case scenario (being 3 times my max amount).
I am creating a web site in .Net 3.5 , I am converting the string into Base64String to send it through querystring.The Response.Redirect works fine for smaller string. But if the original string size is 1670,the response.redirect results in error "Page can not be found".item is the string in below code snippet.
byte[] data = Encoding.Default.GetBytes(item); return Convert.ToBase64String(data)
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?
public class Package { public Package() { name = ""; type = new List<Dictionary<string, string>>(); } public string name { get; set; } public List<Dictionary<string, string>> type { get; set; } } [code]...
I am developing a webiste in ASP.NET. On one of the pages page named menu.aspx, with the help of a certain login, I am getting the output in this format
foo({"1":"Jeff","2":"Mik","5":"Tom"});
I am using this code to get the output on the JSON form.
[Code]....
However, I must get the output only in simple JSON on the page without any HTML.
For eg: Here's the screenshot showing the source of the output page. [URL]
Notice that it has only the JSON string as the output.
And here's the screenshot showing the output page source (with HTML). [URL] .This HTML is what I have to remove. How can do I do this? The full code of menu.aspx.cs is putup here. [URL]
I'm using Json.NET and I'm trying to create a JSON string representing a row from a database table to return in an HTTP response. I'm not sure how to do this while I'm reading from the database.The problem is marked by the obnoxious comments /******** ********/
// connect to DB theSqlConnection.Open(); // open the connection SqlDataReader reader = sqlCommand.ExecuteReader();
System.Web.Script.Serialization.JavaScriptSerializer s = new System.Web.Script.Serialization.JavaScriptSerializer(); result = s.Deserialize<Hashtable>(data); Error is thrown if data is "{a:""test" 123",b:"hello" }" No error is thrown if data is "{a:"test 123",b:"hello" }"
How do I adjust the data string so that no error is thrown even when there are quotes?
I have a class that contains an enum property, and upon serializing the object using JavaScriptSerializer, my json result contains the integer value of the enumeration rather than its string "name". Is there a way to get the enum as a string in my json without having to create a custom JavaScriptConverter? Perhaps there's an attribute that I could decorate the enum definition, or object property, with?As an example:
I have some stored JSON strings stored in the DB which I want to return to the client as JsonResult . I know that Json(object) turns an object into JsonResult but what if I already have the result in a string ? can I cast it to JsonResult
I have an issue with deserializing an object. I get an error 'System.Int32' cannot be converted to type 'System.Decimal'. This object has many child objects and since this object has been serialized, a new version of the object has one or many fields that have been changed from int to decimal and now I can't deserialize the object because it doesn't match my original object.
I have tried using the OnDeserializing method but the context parameter.
Is there a way around this? I've found some examples online but it doesn't really apply to my situation. I would just like to know if there is a way to view my serialized object even if my object has now changed or if there is a way to find out which variable needs to be changed to decimal and how to go about doing it.
I've added your code but I'm not quite sure how to call it from my code. Here's what I've got:
public static Application LoadSnapshot(int appID, int statusID) { ApplicationSnapshotCollection AppSnap = new ApplicationSnapshotCollection(); AppSnap.LoadByAppAndSnapshotStatusID(appID, statusID);
[Code]....
How do I go about calling the constructor with the proper parameters in my scenario?
I am developing a webiste in ASP.NET. On one of the pages page named menu.aspx, with the help of a certain login, I am getting the output in this format
foo({"1":"Jeff","2":"Mik","5":"Tom"});
I am using this code to get the output on the JSON form.
[Code]....
However, I must get the output only in simple JSON on the page without any HTML. For eg: Here's the screenshot showing the source of the output page.[URL] Notice that it has only the JSON string as the output. And here's the screenshot showing the output page source (with HTML). [URL] .This HTML is what I have to remove. How can do I do this? The full code of menu.aspx.cs is putup here.[URL]
I am using Json.Net however when I go to deserialize the following json I get that Json cannot deserialize to type List.
Json:
{"postalCodes":[{"adminName2":"New York","adminCode2":"061","adminCode1":"NY","postalCode":"10001","countryCode":"US","lng":-73.996705,"placeName":"New York City","lat":40.74838,"adminName1":"New York"},{"adminName2":"New York","adminCode2":"061","adminCode1":"NY","postalCode":"10019","countryCode":"US","lng":-73.985834,"placeName":"New York City","lat":40.765069,"adminName1":"New York"},{"adminName2":"New York","adminCode2":"061","adminCode1":"NY","postalCode":"10021","countryCode":"US","lng":-73.958805,"placeName":"New York City","lat":40.768476,"adminName1":"New York"},{"adminName2":"New York","adminCode2":"061","adminCode1":"NY","postalCode":"10022","countryCode":"US","lng":-73.965703,"placeName":"New York City","lat":40.757091,"adminName1":"New York"},{"adminName2":"New York","adminCode2":"061","adminCode1":"NY","postalCode":"10036","countryCode":"US","lng":-73.991826,"placeName":"New York City","lat":40.759724,"adminName1":"New York"},{"adminName2":"New York","adminCode2":"061","adminCode1":"NY","postalCode":"10065","countryCode":"US","lng":-73.96379,"placeName":"New York City","lat":40.76507,"adminName1":"New York"},{"adminName2":"New York","adminCode2":"061","adminCode1":"NY","postalCode":"10003","countryCode":"US","lng":-73.989223,"placeName":"New York City","lat":40.731253,"adminName1":"New York"},{"adminName2":"New York","adminCode2":"061","adminCode1":"NY","postalCode":"10010","countryCode":"US","lng":-73.981328,"placeName":"New York City","lat":40.737476,"adminName1":"New York"},{"adminName2":"New York","adminCode2":"061","adminCode1":"NY","postalCode":"10011","countryCode":"US","lng":-73.99963,"placeName":"New York City","lat":40.740225,"adminName1":"New York"},{"adminName2":"New York","adminCode2":"061","adminCode1":"NY","postalCode":"10012","countryCode":"US","lng":-73.998284,"placeName":"New York City","lat":40.72553,"adminName1":"New York"}]}
how to pass this via Json.Tried doing something like
var data = { Item1: "test", Item2: 5 }; var JSONdata = $.toJSON(data);
However that did not work. Although simply changing wcf to expect an object with two properties such as Item1 and Item2 will work. Here is example I'm using... I'll trim it a bit to make it easier to read:
function Post(data, url) { $.ajax({ type: 'POST',[code].....
So I'm writing an MVC application, and have a JsonResult post back to obtain some item information for scanned items on a warehouse application I am writing. I'm trying to obtain a URL query string value though, and cannot seem to obtain one via the normal 'Request.QueryString['variable']' way... Is there a way to do this? I also thought about just passing the parameter into my post, but I already have a single value on my jquery post, and I am unsure if I can tack on more values to this.