9

私は C# 開発者であり、Javascript の初心者です。C# オブジェクトが 1 つあり、最後に index.cshtml で、Json.Encode(obj) を呼び出してオブジェクトから変換された文字列を取得できます。

文字列は次のとおりです。

[
    {
    "Name":"CASE_A",
    "Values":[99.8,99.9,99.9,99.8,99.8,96.3,22.3]
    },
    {
    "Name":"CASE_B",
    "Values":[99.8,99.8,99.8,96.3,22.3]
    },
]

ただし、JSON.parse(@TheString) を呼び出すと、次のようになりました。

Uncaught SyntaxError: Unexpected token & 

このエラーの場所は私にこれを示しています:

data = JSON.parse([{"Name":"CASE_A","Values":[99.8,99.9,99.9,99.8 ....

この問題を解決するにはどうすればよいですか?


答えてくれてありがとう!しかし、それでもエラーが発生しました:

Uncaught SyntaxError: Unexpected token o

簡単なテストのために、私はこれを使用しました:

@{
    string tmp = "[{\"Name\":\"CASE_A\",\"Values\":[99.8,99.9,98.6]},{\"Name\":\"CASE_B\",\"Values\":[96.7,11.1]}]";
}
var data1 = JSON.parse(@Html.Raw(@tmp));

ソースは次の行を示しています。

var data1 = JSON.parse([{"Name":"CASE_A","Values":[99.8,99.9,98.6]},{"Name":"CASE_B","Values":[96.7,11.1]}]);

ここには「お」が見えません。


また、javascript オブジェクトを作成するために、シリアル化の前にキー名を削除することを Travis 氏は提案しました。ただし、C# では、すべてのオブジェクトにメンバー名が必要です。私が考えることができるのは、文字列操作だけです。そうするより良い方法はありますか?

4

6 に答える 6

6

2 番目のエラーでは、JSON.parse は文字列を想定していますが、配列を渡しています。出力された js コードは、次のように機能する必要があります。

var data1 = JSON.parse("[{\"Name\":\"CASE_A\",\"Values\":[99.8,99.9,98.6]},{\"Name\":\"CASE_B\",\"Values\":[96.7,11.1]}]");

また、このオブジェクトをサーバー側の JavaScript コードに挿入しているため、JSON.parse を呼び出す必要がないことにも注意してください。適切にフォーマットされた JavaScript をクライアントに送信して評価および実行する限り、サーバー上でどのように作成されたかは問題ではありません。代わりにこれを試してください:

var data1 = @Html.Raw(@tmp);
于 2013-10-24T00:21:31.683 に答える
0

C# を持っていて、Objectそれをそのまま JavaScript で使用したい場合は、次のようにします。

var jsObject = @Html.Raw(JsonConvert.SerializeObject(TheString));

nuget packageを追加してインポートdllする必要があります_ViewImports.cshtml

@using Newtonsoft.Json;

それが誰かを助けることを願っています...

于 2019-08-02T17:54:55.820 に答える