ich hab hier mit der Ebay API mal ein paar Produkte gesucht.
PHP Code:
string bla = Connection.WebRPost("http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsByKeywords&SERVICE-NAME=FindingService&SERVICE-VERSION=1.0.0&GLOBAL-ID=EBAY-DE&SECURITY-APPNAME=dsadasdasESPONSE-DATA-FORMAT=JSON&REST-PAYLOAD&keywords=kuchenl");
Klappt super mit dem JSON return. Leider bekomme ich mit meinem Code keine auswertung vom JSON.
PHP Code:
{"findItemsByKeywordsResponse":[{"ack":["Success"],"version":["1.13.0"],"timestamp":["2015-04-09T19:53:02.465Z"],"searchResult":[{"@count":"100","item":[{"itemId":["231527381785"],"title":["Kuchen und so (PC, 2005, DVD-Box)"],"globalId":["EBAY-DE"],"primaryCategory":[{"categoryId":["139973"],"categoryName":["PC- & Videospiele"]}],"galleryURL":["http:\/\/thumbs2.ebaystatic.com\/m\/mOPBGu-74ZhrsIMiWP9yYcQ\/140.jpg"],"viewItemUR
string bla = Connection.WebRPost("http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsByKeywords&SERVICE-NAME=FindingService&SERVICE-VERSION=1.0.0&GLOBAL-ID=EBAY-DE&SECURITY-APPNAME=asdasdasdas8223f84&RESPONSE-DATA-FORMAT=JSON&REST-PAYLOAD&keywords=kuchen");
class EbayCatalogDeserialization
{
public findItemsByKeywordsResponse findItemsByKeywordsResponse { get; set; }
}
class findItemsByKeywordsResponse
{
public string[] ack { get; set; }
// ..
}
Funktioniert leider nicht. Fehler:
PHP Code:
{"Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'GreenKeys_Ebay_Helper_V2.findItemsByKeywordsResponse' because the type requires a JSON object (e.g. {\"name\":\"value\"}) to deserialize correctly.\r\nTo fix this error either change the JSON to a JSON object (e.g. {\"name\":\"value\"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.\r\nPath 'findItemsByKeywordsResponse', line 1, position 32."}
Kann es sein das die JSON Datei bzw. String nicht ganz korrekt aufgebaut ist?
das json ist syntaktisch richtig, ich frage mich nur warum das fast alles arrays sind, aber das wird nur ebay selber wissen. ich schau wenn ich zeit hab noch mal drüber und bis dahin keiner weiter helfen konnte.
Program.cs:
Code:
static void Main(string[] args)
{
var json = File.ReadAllText("Json.txt");
var ms = new MemoryStream(Encoding.UTF8.GetBytes(json));
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(JsonRoot));
var r = (JsonRoot)ser.ReadObject(ms);
//test
Console.WriteLine(r.FindItemsByKeywordsResponse[0].Ack[0]);
Console.WriteLine(r.FindItemsByKeywordsResponse[0].SearchResult[0].Count);
Console.WriteLine(r.FindItemsByKeywordsResponse[0].SearchResult[0].Item.Count);
Console.WriteLine(r.FindItemsByKeywordsResponse[0].SearchResult[0].Item[0].ItemId[0]);
Console.WriteLine(r.FindItemsByKeywordsResponse[0].SearchResult[0].Item[0].Title[0]);
Console.ReadLine();
}
Json.cs:
Code:
[DataContract]
public class Category
{
[DataMember(Name = "categoryId")]
public IList<string> CategoryId { get; set; }
[DataMember(Name = "categoryName")]
public IList<string> CategoryName { get; set; }
}
[DataContract]
public class PrimaryCategory : Category { }
[DataContract]
public class SecondaryCategory : Category { }
[DataContract]
public class CurrencyInfo
{
[DataMember(Name = "@currencyId")]
public string CurrencyId { get; set; }
[DataMember(Name = "__value__")]
public string Value { get; set; }
}
[DataContract]
public class ShippingServiceCost : CurrencyInfo { }
[DataContract]
public class CurrentPrice : CurrencyInfo { }
[DataContract]
public class ConvertedCurrentPrice : CurrencyInfo { }
[DataContract]
public class ConvertedBuyItNowPrice : CurrencyInfo { }
[DataContract]
public class BuyItNowPrice : CurrencyInfo { }
[DataContract]
public class SearchResult
{
[DataMember(Name = "@count")]
public string Count { get; set; }
[DataMember(Name = "item")]
public IList<Item> Item { get; set; }
}
[DataContract]
public class ProductId
{
[DataMember(Name = "@type")]
public string @Type { get; set; }
[DataMember(Name = "__value__")]
public string Value { get; set; }
}
[DataContract]
public class ShippingInfo
{
[DataMember(Name = "shippingServiceCost")]
public IList<ShippingServiceCost> ShippingServiceCost { get; set; }
[DataMember(Name = "shippingType")]
public IList<string> ShippingType { get; set; }
[DataMember(Name = "shipToLocations")]
public IList<string> ShipToLocations { get; set; }
}
[DataContract(Name = "SellingStatu")]
public class SellingStatus
{
[DataMember(Name = "currentPrice")]
public IList<CurrentPrice> CurrentPrice { get; set; }
[DataMember(Name = "convertedCurrentPrice")]
public IList<ConvertedCurrentPrice> ConvertedCurrentPrice { get; set; }
[DataMember(Name = "bidCount")]
public IList<string> BidCount { get; set; }
[DataMember(Name = "sellingState")]
public IList<string> SellingState { get; set; }
[DataMember(Name = "timeLeft")]
public IList<string> TimeLeft { get; set; }
}
[DataContract]
public class ListingInfo
{
[DataMember(Name = "bestOfferEnabled")]
public IList<string> BestOfferEnabled { get; set; }
[DataMember(Name = "buyItNowAvailable")]
public IList<string> BuyItNowAvailable { get; set; }
[DataMember(Name = "startTime")]
public IList<string> StartTime { get; set; }
[DataMember(Name = "endTime")]
public IList<string> EndTime { get; set; }
[DataMember(Name = "listingType")]
public IList<string> ListingType { get; set; }
[DataMember(Name = "gift")]
public IList<string> Gift { get; set; }
[DataMember(Name = "buyItNowPrice")]
public IList<BuyItNowPrice> BuyItNowPrice { get; set; }
[DataMember(Name = "convertedBuyItNowPrice")]
public IList<ConvertedBuyItNowPrice> ConvertedBuyItNowPrice { get; set; }
}
[DataContract]
public class Condition
{
[DataMember(Name = "conditionId")]
public IList<string> ConditionId { get; set; }
[DataMember(Name = "conditionDisplayName")]
public IList<string> ConditionDisplayName { get; set; }
}
[DataContract]
public class Item
{
[DataMember(Name = "itemId")]
public IList<string> ItemId { get; set; }
[DataMember(Name = "title")]
public IList<string> Title { get; set; }
[DataMember(Name = "globalId")]
public IList<string> GlobalId { get; set; }
[DataMember(Name = "primaryCategory")]
public IList<PrimaryCategory> PrimaryCategory { get; set; }
[DataMember(Name = "galleryURL")]
public IList<string> GalleryUrl { get; set; }
[DataMember(Name = "viewItemURL")]
public IList<string> ViewItemUrl { get; set; }
[DataMember(Name = "productId")]
public IList<ProductId> ProductId { get; set; }
[DataMember(Name = "paymentMethod")]
public IList<string> PaymentMethod { get; set; }
[DataMember(Name = "autoPay")]
public IList<string> AutoPay { get; set; }
[DataMember(Name = "postalCode")]
public IList<string> PostalCode { get; set; }
[DataMember(Name = "location")]
public IList<string> Location { get; set; }
[DataMember(Name = "country")]
public IList<string> Country { get; set; }
[DataMember(Name = "shippingInfo")]
public IList<ShippingInfo> ShippingInfo { get; set; }
[DataMember(Name = "sellingStatus")]
public IList<SellingStatus> SellingStatus { get; set; }
[DataMember(Name = "listingInfo")]
public IList<ListingInfo> ListingInfo { get; set; }
[DataMember(Name = "condition")]
public IList<Condition> Condition { get; set; }
[DataMember(Name = "isMultiVariationListing")]
public IList<string> IsMultiVariationListing { get; set; }
[DataMember(Name = "topRatedListing")]
public IList<string> TopRatedListing { get; set; }
[DataMember(Name = "subtitle")]
public IList<string> Subtitle { get; set; }
[DataMember(Name = "secondaryCategory")]
public IList<SecondaryCategory> SecondaryCategory { get; set; }
[DataMember(Name = "galleryPlusPictureURL")]
public IList<string> GalleryPlusPictureUrl { get; set; }
}
[DataContract]
public class PaginationOutput
{
[DataMember(Name = "pageNumber")]
public IList<string> PageNumber { get; set; }
[DataMember(Name = "entriesPerPage")]
public IList<string> EntriesPerPage { get; set; }
[DataMember(Name = "totalPages")]
public IList<string> TotalPages { get; set; }
[DataMember(Name = "totalEntries")]
public IList<string> TotalEntries { get; set; }
}
[DataContract]
public class FindItemsByKeywordsResponse
{
[DataMember(Name = "ack")]
public IList<string> Ack { get; set; }
[DataMember(Name = "version")]
public IList<string> Version { get; set; }
[DataMember(Name = "timestamp")]
public IList<string> Timestamp { get; set; }
[DataMember(Name = "searchResult")]
public IList<SearchResult> SearchResult { get; set; }
[DataMember(Name = "paginationOutput")]
public IList<PaginationOutput> PaginationOutput { get; set; }
[DataMember(Name = "itemSearchURL")]
public IList<string> ItemSearchUrl { get; set; }
}
[DataContract]
public class JsonRoot
{
[DataMember(Name = "findItemsByKeywordsResponse")]
public IList<FindItemsByKeywordsResponse> FindItemsByKeywordsResponse { get; set; }
}
mit den daten die auf pastebin waren hauts hin, output:
im zweifel kann man noch in einigen DataMemberAttributen IsRequired setzen um bei ungültigen daten direkt ne Exception zu bekommen, denn mit diesen ganzen arrays da drin hat man eh schon genug spaß mit null/count checks
ich helfe echt gerne, aber so ein ganz bischen an eigeninitiative ist doch echt nicht zu viel verlangt. manche leute warten wohl lieber bis zu tage auf antworten im forum als wenige sekunden selber zu googlen.
Json in PHP ansprechen 01/21/2015 - Web Development - 1 Replies Hey, spiele grade mit der Riot Api von League of Legends etwas und habe hier folgenden Json:
{
"playerStatSummaries":
Wie genau krieg ich den angesprochen? Wäre das folgende richtig?
$variable
Damit geht das nicht und ich weiß grade nicht, wie genau das angesprochen wird. Bei einfacheren Jsons kriege ich das hin, hier kommt ja aber diese Nummerierung mit dazu...
.json files! 10/28/2013 - Facebook - 5 Replies Is it Possible to Change some data in .json files I was gonna edit Dragons of atlantis .json files ! Just Like BYm gonna map it then everything is like WTF!!
JSON Rezeptdatenbank! 06/21/2012 - Web Development - 4 Replies Hey,
Ich muss fürs Studium eine "virtuelle" Küche via Canvas etc. erstellen.
Die Rezepte würde ich gerne mit Json machen.
Hat jmd. evtl eine art Grundgerüst für mich?
Z.b. erst Rezeptname dann kommen die Zutaten (Reihenfolge beachten)
Gruß
JQuery -JSON 11/28/2011 - General Coding - 0 Replies Hey, mein Freund hat ein Problem und ich wollte mal wissen, ob ihr da helfen könnt?
Die Fragestellung ist sehr kurz und ich persönlich kann damit nichts anfangen , aber hier die Frage:
Wie krieg ich beim Fullcalendar in JQuery nen Datensatz per JSON rein?