Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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# 从web api JSON C中删除斜杠_C#_Json_Asp.net Web Api_Getjson - Fatal编程技术网

C# 从web api JSON C中删除斜杠

C# 从web api JSON C中删除斜杠,c#,json,asp.net-web-api,getjson,C#,Json,Asp.net Web Api,Getjson,我有一个WEB API C,里面有一个链接,例如:images/Chinese/abaloneegcustard.jpg 但在JSON中,它看起来是这样的: [{"BackgroundImage":"images\/Chinese\/AbaloneEggCustard.jpg", ......}] 我可以知道如何删除斜杠吗?需要删除它,以便在我链接azure时能够访问这些图像 这是我的控制器代码: public IEnumerable<Food> Get() {

我有一个WEB API C,里面有一个链接,例如:images/Chinese/abaloneegcustard.jpg

但在JSON中,它看起来是这样的:

[{"BackgroundImage":"images\/Chinese\/AbaloneEggCustard.jpg", ......}]
我可以知道如何删除斜杠吗?需要删除它,以便在我链接azure时能够访问这些图像

这是我的控制器代码:

public IEnumerable<Food> Get()
    {
        List<Food> Cases = new List<Food>();
        try
        {
            string connectionString = ConfigurationManager.ConnectionStrings["HealthyFoodDBConnectionString"].ConnectionString;
            myConnection = new SqlConnection(connectionString);
            myConnection.Open();

            string sql = "SELECT * from [Recipe] ";

            myCommand = new SqlCommand(sql, myConnection);
            myDataReader = myCommand.ExecuteReader();

            while (myDataReader.Read())
            {
                Cases.Add(new Food()
                {
                    RecipeID = (int)myDataReader["RecipeID"],
                    RecipeTitle = (string)myDataReader["RecipeTitle"],
                    FoodCategoryID = Convert.ToInt32(myDataReader["FoodCategoryId"]),
                    Serves = (string)myDataReader["Serves"],
                    PerServing = (string)myDataReader["PerServing"],
                    Favourite = ((Convert.ToInt32(myDataReader["Favourite"]) == 1) ? true : false),
                    Directions = (string)myDataReader["Directions"],
                    BackgroundImage = (string)myDataReader["BackgroundImage"],
                    HealthyTips = (string)myDataReader["HealthyTips"],
                    Nutritions = (string)myDataReader["Nutritions"],
                    Ingredients = (string)myDataReader["Ingredients"]
                });
            }
        }
        finally
        {
            if (myConnection != null)
                myConnection.Close();
        }
        return Cases;
    }
以下是我的Index.cshtml代码:

<script language="javascript" type="text/javascript">
    $(document).ready(function () {
        // Send an AJAX request
        $.getJSON("api/food/",
        function (data) {
            // on success, 'data' contains a list of products
            $.each(data, function (key, val){

                //format the text to display
                var str = val.RecipeTitle + ' | ' + val.FoodCategoryID + ' | ' + val.Serves + ' | ' + val.PerServing + ' | ' + val.Favourites + ' | ' + val.Directions + ' | ' + val.BackgroundImage + ' | ' + val.HealthyTips + ' | ' + val.Nutritions + ' | ' + val.Ingredients;

                // add a list item for the product
                $('<li/>', { html: str }).appendTo($('#cases'));

            });
        });
    });

假设您正在调用API并返回正常转义的JSON对象:

var myObject = Foo.API.Call(); //returns object with BackgroundImage property.
如果要将结果保存到文本文件,可以使用JavaScriptSerializer:

保存的文本文件应为未转换的字符串。

您可以使用:

string deserializedString = Newtonsoft.Json.JsonConvert.DeserializeObject<string>(serializedString);

你指的是哪一个反斜杠?反斜杠=\slash=/但是如果我想在JSON中不带反斜杠地显示这是什么,我该怎么做呢?这与getjson有关吗?抱歉,误解了您的问题,在原始帖子中没有看到任何反斜杠需要在JavaScript和JSON中转义,因此需要前导\号,但当您反序列化回CLR对象或将正确解释为JSON对象时,前导\号将消失。因此,我将如何处理\号,因为如果我保存为文本文件,仍然有\。还是没办法?更新答案。如果您试图将字符串写入文件,则需要反序列化API响应以取消对字符串的scape。您好,很抱歉这么晚才回复,我只是用getAPI代码更新了我的问题。所以我不确定您的代码是否可以实现到我的代码中。
string deserializedString = Newtonsoft.Json.JsonConvert.DeserializeObject<string>(serializedString);