0

サーバーから文字列を返そうとしていたのですが、これは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); 
4

2 に答える 2

1

その文字列は有効なJSONではありません。 {}キーを持つ必要があるオブジェクトを表します。配列が必要なようです[]。代わりに使用してください。

returnContents = "[" + String.Join(",",returnContentsArray.ToArray()) + "]";
于 2012-07-27T20:06:21.543 に答える
1

正しい JSON 形式を使用する必要があります。使用する必要がある形式は

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

オブジェクトの配列を返します。JavaScriptコードを変更しようとする前に、同様のJSONLintでJSONを検証できるようにするだけです。

于 2012-07-27T20:09:33.720 に答える