سؤال

أنا جديد جدا في JSON، وأنا بحاجة إلى تحليل بعض أن API يوفر. تحول بحث سريع Google json.net., ، لذلك أحاول استخدامه الآن لتحليل JSON هذا في كائن قائمة. في البداية، هو json.net أفضل مكتبة للاستخدام لهذا؟

هذا ما أحاول القيام به: لدي فئة تسمى البند, ، علي سبيل المثال. لدى JSON العديد من "العناصر" (إذا كان هذا ما يسمىه)، وكل منهما يحتوي على 3 حقول: . أرغب في تحليل كل هذه العناصر "العناصر" من JSON في قائمة كائنات العناصر. وبعد لقد أنشأت 3 حقلا في فئة العنصر لتتناسب مع JSON. كيف يمكن القيام بذلك باستخدام json.net؟

لقد حاولت:

List<Item> fav = (List<Item>)new JsonSerializer().Deserialize(new JsonReader((TextReader)new StreamReader(response.GetResponseStream())));

لكن لا يبدو أن العمل. أحصل على خطأ في الصب - فلا يمكنك معالجة ذلك في العلبة قائمة، لكنني لست متأكدا ما إذا كان قادرا على معالجة JSON في فئة عنصر واحد (json.net غير موثق جيدا، لكنني " م الذهاب إلى تصحيح شديدة ذلك غدا).

هل يمكن أن تعطيني بعض رمز العينة لشرح كيف يمكنني تحليله مع json.net؟

شكرا!

تحديث: بالمناسبة، نسيت أن أذكر - سيكون مشروعي يستهدف .NET Framework 2.0، لذلك أنا أستخدم الإصدار القديم من JSON.NET: 1.3.1. هل هناك مزايا ضخمة قد تجعل المشروع يستحق التحويل إلى .NET 3.5، مع تقويض متطلبات النظام الأدنى؟

تحديث رقم 2: لقد قررت استخدام فئة JavaScriptSerializer في system.web.extensions.dll بدلا من json.net، وسؤال حول هذا المنشور هنا. وبعد شكرا!

هل كانت مفيدة؟

المحلول

أود أن أوصى أنك تقوم بالترقية إلى .NET Framework 3.5 واستخدام ASP.NET MVC لإنشاء خدمات JSON الخاصة بك. يرى:

http://msmvps.com/blogs/omar/archive/2008/10/03/CREATE-REST-API-USING-NET-MVC-That-Speaks-Both-json-and-plain-xml.aspx.

نصائح أخرى

أدرك أن هذا السؤال هو حوالي 3 سنوات، لكنني اعتقدت أنني سأضيف ذلك فقط إذا كنت ترغب في بناء API المستندة إلى JSON، Nancyfx رائع: http://nancyfx.org/

تحرير: مثال على النحو المطلوب، سهل حقا. للبدء في إضافة حزمة NancyFX ASP إلى مشروع ويب عبر Nuget. (إذا كنت إضافته إلى تطبيق موجود على المسار الفرعي، فستحتاج إلى إضافة موقع إلى Web.config، وإلا فسوف تذهب جيدا)

using Nancy;
using Nancy.ModelBinding;

public class Api : NancyModule
        {
            public Api()
            {
                Get["/api/order/create"] = x => 
                { 
                    var order = this.Bind<Order>(); //xml/json negotiated based on content header

                    var result = ... // Do stuff here

                    return Response.AsJson(result); 
                };
            }       
        }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top