2013-05-02 5 views
8

के साथ बचने वाले वर्णों को सही ढंग से कैसे पट्टी करें I नीचे दिए गए प्रारूप में जेसन प्रतिक्रिया है।जेसन: json.net

"[{\\\"JobID\\\":\\\"1\\\",\\\"BillGenerationDate\\\":\\\"4/29/2013 2:53:34 PM\\\",\\\"BillID\\\":\\\"115743\\\",\\\"BillNo\\\":\\\"115743\\\",\\\"CustomerID\\\":\\\"4041705\\\",\\\"PayStatus\\\":\\\"0\\\",\\\"PaymentRequiredStatus\\\":\\\"True\\\",\\\"ProductName\\\":\\\"Epic FBO test\\\",\\\"Description\\\":\\\"Epic Automation 2\\\\r\\\\n\\\",\\\"ProductType\\\":\\\"eBill \\\",\\\"DueType\\\":\\\"-1\\\",\\\"DueDate\\\":\\\"2013-03-15\\\",\\\"Amount\\\":\\\"63.70\\\",\\\"Cost\\\":\\\"\\\"}, 
{\\\"JobID\\\":\\\"9\\\",\\\"BillGenerationDate\\\":\\\"5/2/2013 10:21:39 AM\\\",\\\"BillID\\\":\\\"115743\\\",\\\"BillNo\\\":\\\"115743\\\",\\\"CustomerID\\\":\\\"4041705\\\",\\\"PayStatus\\\":\\\"0\\\",\\\"PaymentRequiredStatus\\\":\\\"True\\\",\\\"ProductName\\\":\\\"FBO Test Product\\\",\\\"Description\\\":\\\"FBO Product Test\\\",\\\"ProductType\\\":\\\"eBill \\\",\\\"DueType\\\":\\\"-1\\\",\\\"DueDate\\\":\\\"2013-05-01\\\",\\\"Amount\\\":\\\"150.70\\\",\\\"Cost\\\":\\\"\\\"}] 

मेरा मानना ​​है कि json.net भागने पात्रों को संभालती है और मैं एक शब्दकोश संग्रह में deserialize करने के लिए नीचे दिए गए कोड का इस्तेमाल किया।

var billList = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(contentCorrected); 

लेकिन इस json पार्स अपवाद "अवैध संपत्ति पहचानकर्ता चरित्र।: पथ '[0]', लाइन 1, स्थिति 2." फेंकता क्या हम जेसन प्रतिक्रिया स्ट्रिंग में हेरफेर करके इसे हल कर सकते हैं?

उत्तर

15

deserialization प्रक्रिया से पहले string contentCorrected = contentCorrected.Replace(@"\", ""); की कोशिश करो।

+0

धन्यवाद बिजॉय .... इसका काम कर रहे ..... धन्यवाद –

+1

यह 'contentCorrected = contentCorrected.Replace (की तरह होना चाहिए @" \ "" " , @ "" "") ' – msa7

+0

या ' सामग्री सुधारित = सामग्री सुधारित। बदलें (@ "\", string.Empty) ' –

0
  1. इससे पहले कि आप इसे deserialize करने से पहले सभी \ "चरित्र हटा दें। प्रतिस्थापन समारोह का प्रयोग करें।

    yourJsonString.Replace ("\\\\\", "");

  2. आपकी जेसन स्ट्रिंग अपूर्ण है या List<Dictionary<string, string>>" प्रकार की प्रतीत नहीं होती है। उस प्रकार को सही करें जिसे आप जेसन को परिवर्तित करना चाहते हैं। मैंने आपके जेसन को निम्नानुसार संशोधित किया और यह काम किया।

    newJson = "{\" सरणी \ ":" + yourJsonString + "}"

-1

मेरे लिए नीचे दिए गए कोड काम करता है

string contentCorrected = contentCorrected.Replace(**@"\""", ""**); 
0

समस्या तब होती है जब वैध दोहरे उद्धरण चिह्नों जवाब के भीतर किया जाता है। हटाने और/या प्रतिस्थापन सभी मामलों में इसे हल नहीं किया जाएगा। यह मुझे बहुत निराश जब तक मैं एक सरल समाधान पाया:

var billList = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(@contentCorrected);