Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WebAPI 2不序列化基元返回类型_C#_Json_Serialization_Asp.net Web Api - Fatal编程技术网

C# WebAPI 2不序列化基元返回类型

C# WebAPI 2不序列化基元返回类型,c#,json,serialization,asp.net-web-api,C#,Json,Serialization,Asp.net Web Api,我有一个WebAPI,它返回基本类型,比如int、Int64、UInt64等等 public Int64 Count() { return 1337; } Returns: 1337 即使我的客户端使用HTML头请求数据 Accept: application/json API仍然只返回数字,因此在JSON术语中无效。在XML中,它将正确序列化为 <long>1337</long> 我在寻找更简单的方法,我可能最终会编写一个泛型类,它除了包装原语之外什么

我有一个WebAPI,它返回基本类型,比如int、Int64、UInt64等等

public Int64 Count()
{
    return 1337;
}

Returns:

1337
即使我的客户端使用HTML头请求数据

Accept: application/json

API仍然只返回数字,因此在JSON术语中无效。在XML中,它将正确序列化为

<long>1337</long>

我在寻找更简单的方法,我可能最终会编写一个泛型类,它除了包装原语之外什么都不做。

“API仍然只是返回JSON中的数字”:你是什么意思?它到底返回什么,您期望什么?您说当http头设置为
Accept:application/JSON
时,数据以JSON的形式返回,这正是它应该做的,您期望发生什么?它只返回数字,这不是有效的JSON。我的客户端JSON反序列化程序在这方面失败。那么,您希望数字的JSON表示是什么?JSON.NET将字符串“1337”反序列化为int值1337没有问题。我不知道它是否是有效的JSON,但在我看来,它是唯一有意义的表示形式。据我所知,
1337
不是有效的JSON,但@thomasleveque有一点:您希望表示形式是什么?int不是键/值对。如果您不想只返回int的模型,那么返回
动态的
怎么样<代码>返回新的{long=1337}
public Dictionary<string, Int64> Count()
{
    return new Dictionary<string, Int64>() {{"Count", 1337}};
}
public Number Count()
{
    return new Number(1337);
}

Returns:

{ "Value" : 1337 }