[ad_1]
やあ、
WebAPIを使用してデータベースからデータを取得し、JSON文字列としてユーザーに送り返し、それをデータテーブルに変換し直すという要件があります。 何が問題なのか分かりませんでした。 提案してください。
JSON文字列
—————–
」[{\”TestID\”:\”1 \”,\”WorkOrderID\”:\”2 \”,\”Recipe\”:\”1110 \”,\”FitCoeffA\”:\”0 \”,\”FitCoeffB\”:\”0 \”,\”FitCoeffC\”:\”0 \”,\”Temp0\”:\”0 \”,\”Temp1\”:\”0 \”,\”Temp2\”:\”0 \”,\”TestResult\”:\”1 \”},{\”TestID\”:\”1 \”,\”WorkOrderID\”:\”2 \”,\”Recipe\”:\”1110 \”,\”FitCoeffA\”:\”0 \”,\”FitCoeffB\”:\”0 \”,\”FitCoeffC\”:\”0 \”,\”Temp0\”:\”0 \”,\”Temp1\”:\”0 \”,\”Temp2\”:\”0 \”,\”TestResult\”:\”1 \”}]」
例外
———-
DataTable の読み取り時に予期しない JSON トークンが発生しました。 StartArray が予期されましたが、String を取得しました。 パス ”、行 1、位置 557。
エラースタックトレース
——————–
Newtonsoft.Json.Converters.DataTableConverter.ReadJson (JsonReader リーダー、タイプ objectType、オブジェクトの既存の値、JsonSerializer シリアライザー) で
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter コンバーター、JsonReader リーダー、型 objectType、オブジェクトの既存の値) で
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader リーダー、タイプ objectType、ブール値 checkAdditionalContent) で
Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader リーダー、タイプ objectType) で
Newtonsoft.Json.JsonConvert.DeserializeObject(文字列値、Type タイプ、JsonSerializerSettings 設定) で
Newtonsoft.Json.JsonConvert.DeserializeObject(String 値、Type 型) で
C:\Users\20063692\source\Workspaces\E-07430-01-01\Solution\iMFCTest\iMFCTest.Service\iMFCDAL.cs:line 61 の iMFCTest.Service.iMFCDAL.
私が試したこと:
変換には以下のコードを使用しました。
DataTable table=(DataTable)JsonConvert.DeserializeObject(dataString, (typeof(DataTable)));
解決策 1
確認しましたが問題はありませんでした。 実際に取得した JSON を確認し、JSONLint を使用して json が有効かどうかを検証していただけますか? あなたが言及したjsonは正しいので、それをデータテーブルに変換できました。 取得した JSON が正確に何であるかを確認し、検証します。
私のコードをチェックしてください:
文字列 s = “[{\”TestID\”:\”1 \”,\”WorkOrderID\”:\”2 \”,\”Recipe\”:\”1110 \”,\”FitCoeffA\”:\”0 \”,\”FitCoeffB\”:\”0 \”,\”FitCoeffC\”:\”0 \”,\”Temp0\”:\”0 \”,\”Temp1\”:\”0 \”,\”Temp2\”:\”0 \”,\”TestResult\”:\”1 \”},{\”TestID\”:\”1 \”,\”WorkOrderID\”:\”2 \”,\”Recipe\”:\”1110 \”,\”FitCoeffA\”:\”0 \”,\”FitCoeffB\”:\”0 \”,\”FitCoeffC\”:\”0 \”,\”Temp0\”:\”0 \”,\”Temp1\”:\”0 \”,\”Temp2\”:\”0 \”,\”TestResult\”:\”1 \”}]”;
DataTable テーブル = (DataTable)JsonConvert.DeserializeObject(s, (typeof(DataTable)));
解決策 2
[{\"TestID\":\"1 \",\"WorkOrderID\":\"2 \",\"Recipe\":\"1110 \",\"FitCoeffA\":\"0 \",\"FitCoeffB\":\"0 \",\"FitCoeffC\":\"0 \",\"Temp0\":\"0 \",\"Temp1\":\"0 \",\"Temp2\":\"0 \",\"TestResult\":\"1 \"},{\"TestID\":\"1 \",\"WorkOrderID\":\"2 \",\"Recipe\":\"1110 \",\"FitCoeffA\":\"0 \",\"FitCoeffB\":\"0 \",\"FitCoeffC\":\"0 \",\"Temp0\":\"0 \",\"Temp1\":\"0 \",\"Temp2\":\"0 \",\"TestResult\":\"1 \"}]
[ad_2]
コメント