簡體   English   中英

試圖做JSON.parse,但它不喜歡我從我的服務器返回的字符串做什么

[英]Trying to do JSON.parse but it doesnt like what i am doing with a returned string from my server

我試圖從我的服務器返回一個字符串,該字符串將被解析為一個javascript對象。 在解析過程中,我不斷收到錯誤。 我不知道為什么。 也許你知道我不知道的事情。

我的字符串看起來像這樣:

{{"fname":"bob","lname":"jones"},{...}}

我想做的事情是這樣的

var item = JSON.parse(myString);

它應該是制作項目,一個名字數組,所以我可以這樣做:

for(var i = 0; i < item.length; i++){
    alert(item[i].fname + " " + item[i].lname);
}

有什么我做錯了嗎? 以上是一個示例,但下面實際上是代碼片段:

while (reader.Read())
{
    if (reader["rt_id"] != DBNull.Value && reader["rt_name"] != DBNull.Value)
    {
          t = @"{""pValue"":""{ReportType},"+reader["rt_id"]+@""",""pText"":"""+reader["rt_name"]+@"""}";
          returnContentsArray.Add(t);
    }
}
returnContents = "{" + String.Join(",",returnContentsArray.ToArray()) + "}";
return returnContents;

在客戶端:

var item = JSON.parse(result); 

該字符串無效JSON。 {}代表一個需要有密鑰的對象。 看來你想要一個數組,而不是使用[]

returnContents = "[" + String.Join(",",returnContentsArray.ToArray()) + "]";

您需要使用正確的JSON格式。 它看起來像你應該使用的格式

[{"fname":"bob","lname":"jones"},{...}]

哪個會返回一個對象數組。 只需讓用戶在嘗試更改javascript代碼之前就可以在類似的JSONLint中驗證JSON。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM