2016-04-13 31 views
1

SO üzerinde bulduğum soruna benzer çeşitli sorular var ancak bunların hiçbiri sorunu çözemiyor. Aşağıdaki dizeyi içeren bir metin dosyası,JSON dizgisini Çince karakterle ayrıştırma

callback12({ 
"searchResult":{ 
    "data":[ 
    { 
     "CURRENCY":"人民币", 
     "DATE":"2016-03-25", 
     "NAME":"仲尧文" 
    }, 
    { 
     "CURRENCY_TYPE":"人民币", 
     "DATE":"2016-03-24", 
     "NAME":"王新华" 
    }] 
} 
    }) 

Ben JSON dizesi ayrıştırmak için aşağıdaki kod satırını kullanıyorum,

Dim objTempResults As JObject = JObject.Parse(strSource) 
Dim objResults = objTempResults("callback12")("searchResult")("data").Children() 

sağlanmıştır Ama bu bana JObject üzerinde istisna veriyor. ayrıştırma, o

Unexpected character encountered while parsing value: \. Path '', line 0, position 0. 

Ben kodlamak ve dize kodu yanıtlarını var ama gereken tek iki alan vardır gibi ben kodlamak veya tüm dizeyi deşifre edemez bulduk diğer sorular kodlanacak. Bu istisnayı nasıl çözebilirim?

+1

. VB.NET doğrudan Unicode kullanır, buna gerek yoktur. – GSerg

+3

Verdiğiniz örnek geçerli bir JSON değil. Özellikle, '(' callback12' sonra JSON'da geçerli bir anlamı yoktur. – user5090812

+0

@GSerg String2Unicode işlevini kaldırdım. Denediğim farklı yöntemlerden biriydi. –

cevap

1

JSON'daki Çince karakterler burada sorun değil. JSON'unuz javascript işlev çağrısı içine sarıldığı için geçersiz JSON yapar, çünkü bir ayrıştırma hatası alıyorsunuz. (Geçerli JSON sözdizimi olarak kabul edilenler hakkında daha fazla bilgi için bkz. JSON.org.) JSON'u çevreleyen callback12()'u kaldırırsanız, Json.Net ile doğru şekilde ayrıştırılır.

Fiddle: https://dotnetfiddle.net/xN5JJi Metin muhtemelen String2Unicode` ne olursa olsun `tarafından yok edilir

+0

Bunu yanıt olarak gönderdiğiniz için teşekkür ederiz. Bunu daha önce işaret eden "GSerg" in krediyi alabileceğini umuyordum ama siz de teşekkürler. Şerefe –