2011-09-27 70 views
2

正確格式正在試圖消耗裏面asp.net JSON字符串和谷歌告訴我這個Json.NET庫的JSON(Json.NET

我從PHP Web服務以下JSON:

"[{\"AccountID\":\"demo\",\"UserID\":\"1\",\"Password\":\"*blank*\",\"Active\":\"1\",\"Name\":\"\"}][{\"AccountID\":\"demo\",\"UserID\":\"1\",\"Password\":\"*blank*\",\"Active\":\"1\",\"Name\":\"\"}]" 

我發現庫無法加載網址,所以我不得不使用System.Net.WebClient;確定到目前爲止 的問題是,這樣做

var json = webClient.DownloadString(url); //gives the json above    
object user = JsonConvert.DeserializeObject(json); 
// or User user =JsonConvert.DeserializeObject<User>(json); wont work 

不會工作庫說,「解析後遇到意外字符的值「

那麼,我的json格式不正確嗎?我用PHP的json_encode($ resultset)構造它,所以我不知道發生了什麼。

我的User對象只具有json上的屬性。

回答

2

首先,你的JSON字符串在整個結果周圍都有雙引號,而在每個其他雙引號之前都有一個反斜槓。我將假設這是從VisualStudio調試器中複製出來的工件(它像這樣顯示它)。

如果我們去除這些反斜槓,我們得到以下JSON:

[{"AccountID":"demo","UserID":"1","Password":"*blank*","Active":"1","Name":""}] 
[{"AccountID":"demo","UserID":"1","Password":"*blank*","Active":"1","Name":""}] 

這是兩個相同的JSON數組。但是有效的JSON響應由單個JSON對象或單個JSON數組組成。此回覆無效。

看起來,兩個JSON響應連在一起,導致一個無效構造。

0

那是因爲你的JSON字符串是不正確的格式
如果你打算使用括號[然後JSON只有一個arrays.Since您的聲明可能的array.Put你的字符串(如我編輯)到this site並親自查看結果。

[{"AccountID":"demo","UserID":"1","Password":"*blank*","Active":"1","Name":""},{"AccountID":"demo","UserID":"1","Password":"*blank*","Active":"1","Name":""}]