我要輸出在JSON以下示例數據:轉換JSON屬性爲數字使用Json.net序列化時和C#
{ 「SOURCE_ID」: 「1234」, 「接觸」:[ 「15」:」 020 8111 1111" ]}
我已經使用以下代碼來實現這一點使用Json.net嘗試:
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace Test.Utility
{
public class RequestHelper
{
internal static string CreateData(string sourceId, string telephone)
{
JArray createContact = new ContactFieldHelper
{
Phone = new JValue(telephone)
};
var createData = new DataFieldHelper
{
SourceId = sourceId,
CreateContact = createContact
};
string output = JsonConvert.SerializeObject(createData);
return output;
}
}
class DataFieldHelper
{
[JsonProperty(PropertyName = "source_id")]
public string SourceId { get; set; }
[JsonProperty(PropertyName = "contacts")]
public JArray CreateContact { get; set; }
}
public class ContactFieldHelper : JArray
{
[JsonProperty(PropertyName = "15")]
public JValue Phone { get; set; }
}
}
然而,這是顯示用於一個空白輸出‘聯繫人’字段。它適用於僅使用值的情況,但不適用於JArray中存在關鍵值對的情況。因此,例如,以下將輸出:
{ 「SOURCE_ID」: 「1234」, 「人脈」: 「020 8111 1111」]}
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace Test.Utility
{
public class RequestHelper
{
internal static string CreateData(string sourceId, string telephone)
{
JArray createContact = new JArray
{
new JValue(telephone)
};
var createData = new DataFieldHelper
{
SourceId = sourceId,
CreateContact = createContact
};
string output = JsonConvert.SerializeObject(createData);
return output;
}
}
class DataFieldHelper
{
[JsonProperty(PropertyName = "source_id")]
public string SourceId { get; set; }
[JsonProperty(PropertyName = "contacts")]
public JArray CreateContact { get; set; }
}
}
任何想法?