سؤال

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

ووسلسلة JSON يمكنني الحصول على هذا واحد:

[{"typeid":1,
  "typename":"binders",
  "description":"test",
  "RESOURCEs":
    [{"resourceid":4,
      "resourcename":"Binders 1",
      "description":"Pakke med hele fire binders!!!",
      "typeid":1,
      "RESERVATIONLINEs":[]
     },    
     {"resourceid":10,
      "resourcename":"xxx",
      "description":"xxx",
      "typeid":1,
      "RESERVATIONLINEs":[]
     }
    ]
 },
 {"typeid":2,
  "typename":"blyant",
  "description":"også dyrt",
  "RESOURCEs":
    [{"resourceid":5,
      "resourcename":"Gråblyant 1",
      "description":"Fin og grå",
      "typeid":2,
      "RESERVATIONLINEs":[]
     },
     {"resourceid":6,
      "resourcename":"Rødblyant 1",
      "description":"Må spisses ofte",
      "typeid":2,
      "RESERVATIONLINEs":[]
     }
    ]
 },
 {"typeid":4,
  "typename":"Penn",
  "description":"tester",
  "RESOURCEs":
    [{"resourceid":7,
      "resourcename":"Penn 1",
      "description":"Blå og fin",
      "typeid":4,
      "RESERVATIONLINEs":[]
     },
     {"resourceid":11,
      "resourcename":"xxx",
      "description":"xxx",
      "typeid":4,
      "RESERVATIONLINEs":[]
     }
    ]
 },
 {"typeid":5,
  "typename":"Kajakk",
  "description":"Dette er en type båt",
  "RESOURCEs":
    [{"resourceid":1,
      "resourcename":"Havkajakk 1",
      "description":"FOr havbruk",
      "typeid":5,
      "RESERVATIONLINEs":[]
     },
     {"resourceid":2,
      "resourcename":"Havkajakk 2",
      "description":"For havbruk",
      "typeid":5,
      "RESERVATIONLINEs":[]
     }
    ]
 },
 {"typeid":6,
  "typename":"3G-modem",
  "description":"Fra NetCom",
  "RESOURCEs":
    [{"resourceid":3,
      "resourcename":"3G-modem 1",
      "description":"Gammelt og ustabilg",
      "typeid":6,
      "RESERVATIONLINEs":[]
     },
     {"resourceid":12,
      "resourcename":"xxx",
      "description":"xxx",
      "typeid":6,
      "RESERVATIONLINEs":[]
     }
    ]
 },
 {"typeid":7,
  "typename":"Minnepinne",
  "description":"på 1 KB",
  "RESOURCEs":
    [{"resourceid":8,
      "resourcename":"Minnepinne 1",
      "description":"1 KB (!)",
      "typeid":7,
      "RESERVATIONLINEs":[]
     },
     {"resourceid":9,
      "resourcename":"Minnepinne 2",
      "description":"20 PB",
      "typeid":7,
      "RESERVATIONLINEs":[]
     }
    ]
 }]

وأي شخص لديه أدنى فكرة لماذا هذا لا يعمل؟

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

المحلول

وكانت المشكلة الحقيقية هنا أن هذا JSON كان جزءا لا يتجزأ من XML العلامة. أنا حل المشكلة عن طريق تحليل JSON سلسلة باستخدام هذا المحلل: http://www.json.org /js.html

ومن cource هذه ليست مثالية، كما يجب مسج القيام بذلك بالنسبة لي، ولكن حتى أجد وسيلة ل. NET-خدمات ويب لإعادة الخام JSON سلسلة، وليس جزءا لا يتجزأ من XML العلامة، وهذا الحل يعمل =)

نصائح أخرى

وأعتقد أن هذا هو مشكلة الترميز، ماذا لو قمت بإزالة هذا من السجل الخاص بك؟

"resourcename":"Rødblyant 1"

تأكد من أنك تعمل مع UTF-8 على كلا الجانبين. تخميني هو أن إما أن يتم ترميز السلسلة باستخدام الترميز الافتراضي (مثل windows1252)، أو الطرف المتلقي يفعل شيئا من هذا القبيل.

وتذكر أن JSON يجب أن تكون في UTF-8، UTF-16 (LE أو BE)، أو UTF-32 (LE أو BE).

لاختبار هذا، والتخلص من كل من å وø الحروف ومعرفة ما اذا كان يعمل. إذا كان الأمر كذلك، فإنه ترميز بالتأكيد على جانب واحد أو آخر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top