デバイス上のSSIメカニズムによって解析されるJSONドキュメントを作成する必要があります。ドキュメントは実際にはjsonのシリアライズされた辞書になります。単純化のために、それは次のようになりますことを、のは言わせて:serilaized文字列から引用符を削除するにはどうすればよいですか?
LinqPadに生成var x = new Dictionary<string,object>
{
["A"]=new {x = "<!-- ?A.x -->"},
["B"]=new {x = "<!-- ?B.x -->"}
};
JsonConvert.SerializeObject(x).Dump();
:
{"A":{"x":"<!-- ?A.x -->"},"B":{"x":"<!-- ?B.x -->"}}
しかし、実際にそれらの「X」フィールドは数字であり、ときにフェッチからデバイスには、数字が含まれます。だから私は、C#側の文字列であるフィールドの値の前後に引用符なしでこの辞書をシリアル化する必要があるでしょう:
{"A":{"x":<!-- ?A.x -->},"B":{"x":<!-- ?B.x -->}}
は、どのように私はすべてではない(特定のフィールドの値に引用符を追加していないNewtonsoft Json.NET・シリアライザを強制することができます)シリアル化中に?
ありがとうございます。
'{ "A":{ "X" }、 "B":{ "X"。 }} 'Jsonは無効になりますか? jsonシリアライザが無効なjsonを生成することは期待できません。なぜあなたは文字列を作成しませんか(これは文字列であり、Jsonではありません)? – Liam
私のポイントを証明するには、[JsonLint](http://jsonlint.com/)に '{" A ":{" x ":}、" B ":{" x ":}}'エラー:3行目の解析エラー:{\t "A":{\t \t "x":}、 "B":{' – Liam
@Liam:もちろんこの形式の有効なJSONではありません。そうは言っていない。しかし、セクションを数字に置き換えることで、デバイスが処理した後で有効になります。私はこれが通常の仕事の仕方のまわりではうんざりしていることを知っています。 – ZorgoZ