小编har*_*son的帖子

Json Formatting.Indented使用Web Api Controller,ASP.NET MVC

我为web api收集了名称,短语,地理定位图像信息的json数据.通过我的代码,我可以生成JSON数据/ api/wiki/name.但我不能格式化数据.当我想将它保存在一个文件中时,它存储在一行中.我试图在返回结果中写入Formatting.Indented,但它显示错误.我的代码看起来像这样 -

 public class WikiController : ApiController
{
    public JsonResult<PoiInfo> Get(string id)
    {
        WebClient client = new WebClient();
        var TextResponse = client.DownloadString("https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exlimit=max&explaintext&exintro&titles=" + id + "&redirects=");
        var ImageResponse = client.DownloadString(new Uri("https://en.wikipedia.org/w/api.php?action=query&format=json&prop=pageimages&pithumbsize=400&titles=" + id));
        var GeoResponse = client.DownloadString("https://en.wikipedia.org/w/api.php?action=query&format=json&prop=coordinates&titles=" + id);


        var TextResponseJson = JsonConvert.DeserializeObject<Rootobject>(TextResponse);
        var TextfirstKey = TextResponseJson.query.pages.First().Key;
        var Text = TextResponseJson.query.pages[TextfirstKey].extract;
        Regex regex = new Regex(@".(?<=\()[^()]*(?=\)).(.)");
        string.Format("Before:{0}", Text);
        Text = regex.Replace(Text, string.Empty);
        string TextResult = String.Format(Text);
        TextResult = Regex.Replace(TextResult, @"\\n", " ");

        var ImgresponseJson = JsonConvert.DeserializeObject<ImgRootobject>(ImageResponse);
        var ImgfirstKey …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc formatting jsonserializer asp.net-web-api

2
推荐指数
2
解决办法
4783
查看次数

如何将两个Wikipedia API调用合并为一个?

我正在调用维基百科API,它返回该位置的标题,镜头文本,图像和地理坐标.我的维基百科API是:

https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts|pageimages|coordinates&titles=Berlin&redirects=1&formatversion=2&exintro=1&explaintext=1&piprop=thumbnail&pithumbsize=400
Run Code Online (Sandbox Code Playgroud)

此外,我正在使用另一个Wikipedia API,它根据地理坐标返回地名列表:

https://en.wikipedia.org/w/api.php?format=json&action=query&list=geosearch&gsradius=1000&gscoord=52.5243700|13.4105300&gslimit=50&gsprop=type|dim|globe
Run Code Online (Sandbox Code Playgroud)

对于第二个API,我得到这样的响应:

"query": {
    "geosearch": [
        {
            "pageid": 28782169,
            "ns": 0,
            "title": "1757 Berlin raid",
            "lat": 52.523405,
            "lon": 13.4114,
            "dist": 122.4,
            "primary": "",
            "type": null,
            "dim": 1000
        },
        {
            "pageid": 526195,
            "ns": 0,
            "title": "Scheunenviertel",
            "lat": 52.526111111111,
            "lon": 13.41,
            "dist": 196.9,
            "primary": "",
            "type": "landmark",
            "dim": 1000
        },
        ...
    ]
}
Run Code Online (Sandbox Code Playgroud)

现在我想在一个API中组合这两个搜索.我想在第二个API中添加第一个API的信息,如下所示:

"query": {
    "geosearch": [
        {
            "pageid": 28782169,
            "ns": 0,
            "title": "1757 Berlin raid",
            "lat": 52.523405,
            "lon": 13.4114,
            "dist": 122.4,
            "primary": "",
            "type": null,
            "dim": …
Run Code Online (Sandbox Code Playgroud)

mediawiki wikipedia wikipedia-api mediawiki-api

1
推荐指数
1
解决办法
550
查看次数