c# - সি#এ JSON স্ট্রিং কিভাবে তৈরি করবেন



asp.net (9)

Json-net.aspx প্রকল্পের জন্য http://www.codeplex.com/json/ এ দেখুন। কেন চাকা আবার আবিষ্কার?

আমি একটি XML প্রতিক্রিয়া ফিরে পাঠাতে কিছু এক্সএমএল তৈরি করতে এক্সএমএলআরাইটার ব্যবহার করেছি। আপনি একটি JSON স্ট্রিং কিভাবে তৈরি হবে। আমি মনে করি আপনি JSON স্ট্রিংটি তৈরি করতে শুধুমাত্র স্ট্রিংবিল্ডার ব্যবহার করবেন এবং তাদের JSON হিসাবে আপনার প্রতিক্রিয়াটি ফর্ম্যাট করবেন?


Answer #1

আপনি জাভাস্ক্রিপ্ট Serializer ক্লাস ব্যবহার করতে পারেন, এই নিবন্ধটি একটি কার্যকর এক্সটেনশান পদ্ধতি তৈরি করতে পরীক্ষা করুন।

নিবন্ধ থেকে কোড:

namespace ExtensionMethods
{
    public static class JSONHelper
    {
        public static string ToJSON(this object obj)
        {
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            return serializer.Serialize(obj);
        }

        public static string ToJSON(this object obj, int recursionDepth)
        {
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            serializer.RecursionLimit = recursionDepth;
            return serializer.Serialize(obj);
        }
    }
}

ব্যবহার:

using ExtensionMethods;

...

List<Person> people = new List<Person>{
                   new Person{ID = 1, FirstName = "Scott", LastName = "Gurthie"},
                   new Person{ID = 2, FirstName = "Bill", LastName = "Gates"}
                   };


string jsonString = people.ToJSON();

Answer #2

আপনি জটিল ফলাফল প্রয়োজন হলে (এমবেডেড) আপনার নিজের গঠন তৈরি করুন:

class templateRequest
{
    public String[] registration_ids;
    public Data data;
    public class Data
    {
        public String message;
        public String tickerText;
        public String contentTitle;
        public Data(String message, String tickerText, string contentTitle)
        {
            this.message = message;
            this.tickerText = tickerText;
            this.contentTitle = contentTitle;
        }                
    };
}

এবং তারপর আপনি কলিং সঙ্গে JSON স্ট্রিং পেতে পারেন

List<String> ids = new List<string>() { "id1", "id2" };
templateRequest request = new templeteRequest();
request.registration_ids = ids.ToArray();
request.data = new templateRequest.Data("Your message", "Your ticker", "Your content");

string json = new JavaScriptSerializer().Serialize(request);

ফলাফল এই মত হবে:

json = "{\"registration_ids\":[\"id1\",\"id2\"],\"data\":{\"message\":\"Your message\",\"tickerText\":\"Your ticket\",\"contentTitle\":\"Your content\"}}"

আশা করি এটা সাহায্য করবে!


Answer #3

আমি দেখেছি যে আপনি সিরিয়ালাইজার প্রয়োজন নেই। যদি আপনি একটি তালিকা হিসাবে বস্তু ফিরে। আমাকে একটি উদাহরণ ব্যবহার করা যাক।

আমাদের asmx আমরা বরাবর প্রেরিত পরিবর্তনশীল ব্যবহার করে তথ্য পেতে

// return data
[WebMethod(CacheDuration = 180)]
public List<latlon> GetData(int id) 
{
    var data = from p in db.property 
               where p.id == id 
               select new latlon
               {
                   lat = p.lat,
                   lon = p.lon

               };
    return data.ToList();
}

public class latlon
{
    public string lat { get; set; }
    public string lon { get; set; }
}

তারপর jquery ব্যবহার করে আমরা যে পরিবর্তনশীল বরাবর ক্ষণস্থায়ী সেবা অ্যাক্সেস।

// get latlon
function getlatlon(propertyid) {
var mydata;

$.ajax({
    url: "getData.asmx/GetLatLon",
    type: "POST",
    data: "{'id': '" + propertyid + "'}",
    async: false,
    contentType: "application/json;",
    dataType: "json",
    success: function (data, textStatus, jqXHR) { //
        mydata = data;
    },
    error: function (xmlHttpRequest, textStatus, errorThrown) {
        console.log(xmlHttpRequest.responseText);
        console.log(textStatus);
        console.log(errorThrown);
    }
});
return mydata;
}

// call the function with your data
latlondata = getlatlon(id);

এবং আমরা আমাদের প্রতিক্রিয়া পেতে।

{"d":[{"__type":"MapData+latlon","lat":"40.7031420","lon":"-80.6047970}]}

Answer #4

এই লাইব্রেরিটি # সি থেকে JSON এর জন্য খুব ভাল

Newtonsoft.Json


Answer #5

নিউটোনসফ্ট। জসন এবং নিউটনসফ্টজসনলিনক লাইব্রেরিগুলির সিমলিপ ব্যবহার।

        //Create my object
        var my_jsondata = new
        {
            Host = @"sftp.myhost.gr",
            UserName = "my_username",
            Password = "my_password",
            SourceDir = "/export/zip/mypath/",
            FileName = "my_file.zip"
        };

        //Tranform it to Json object
        string json_data = JsonConvert.SerializeObject(my_jsondata);

        //Print the Json object
        Console.WriteLine(json_data);

        //Parse the json object
        JObject json_object = JObject.Parse(json_data);

        //Print the parsed Json object
        Console.WriteLine((string)json_object["Host"]);
        Console.WriteLine((string)json_object["UserName"]);
        Console.WriteLine((string)json_object["Password"]);
        Console.WriteLine((string)json_object["SourceDir"]);
        Console.WriteLine((string)json_object["FileName"]);

Answer #6

যদি আপনি দুটি অন্তর্নির্মিত JSON সিরিয়ালাইজার ( জাভাস্ক্রিপ্ট DataContractJsonSerializer এবং DataContractJsonSerializer ) ব্যবহার করতে না চান তবে আপনি DataContractJsonSerializer JsonExSerializer লাইব্রেরিটি চেষ্টা করতে পারেন - আমি এটি বেশ কয়েকটি প্রকল্পে ব্যবহার করি এবং বেশ ভালভাবে কাজ করে।


Answer #7

Newtonsoft.Json ব্যবহার করে এটি সত্যিই সহজ করে তোলে:

Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes = new string[] { "Small", "Medium", "Large" };

string json = JsonConvert.SerializeObject(product);

ডকুমেন্টেশন: JSON serializing এবং deserializing


Answer #8

ব্যবহার এনকোড

সাধারণ বস্তু JSON অ্যারে EncodeJsObjectArray ()

public class dummyObject
{
    public string fake { get; set; }
    public int id { get; set; }

    public dummyObject()
    {
        fake = "dummy";
        id = 5;
    }

    public override string ToString()
    {
        StringBuilder sb = new StringBuilder();
        sb.Append('[');
        sb.Append(id);
        sb.Append(',');
        sb.Append(JSONEncoders.EncodeJsString(fake));
        sb.Append(']');

        return sb.ToString();
    }
}

dummyObject[] dummys = new dummyObject[2];
dummys[0] = new dummyObject();
dummys[1] = new dummyObject();

dummys[0].fake = "mike";
dummys[0].id = 29;

string result = JSONEncoders.EncodeJsObjectArray(dummys);

ফলাফল: [[২9, "মাইক"], [5, "ডামি"]]

সুন্দর ব্যবহার

সুন্দর মুদ্রণ JSON অ্যারে PrettyPrintJson () স্ট্রিং এক্সটেনশান পদ্ধতি

string input = "[14,4,[14,\"data\"],[[5,\"10.186.122.15\"],[6,\"10.186.122.16\"]]]";
string result = input.PrettyPrintJson();

ফলাফল হল:

[
   14,
   4,
   [
      14,
      "data"
   ],
   [
      [
         5,
         "10.186.122.15"
      ],
      [
         6,
         "10.186.122.16"
      ]
   ]
]




json