5

我有一个 WEB API C#,里面有一个链接的 Data,例如:images/Chinese/AbaloneEggCustard.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'));

            });
        });
    });
4

2 回答 2

1

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

var myObject = Foo.API.Call(); //returns object with BackgroundImage property.

如果要将结果保存到文本文件,可以使用JavaScriptSerializer

var bg = new JavaScriptSerializer().Deserialize(myObject);
using (var writer = new StreamWriter(@"C:\foo.txt"))
{
    writer.Write(bg.BackgroundImage);
}

保存的文本文件应该是未转义的字符串。

于 2012-07-02T04:07:18.763 回答
0

You can use this:

string deserializedString = Newtonsoft.Json.JsonConvert.DeserializeObject<string>(serializedString);
于 2013-07-22T19:43:33.287 回答