2012-07-02 2 views
5

У меня есть WEB API C#, в нем у меня есть данные, которые есть ссылка, например: images/Chinese/AbaloneEggCustard.jpgУдаление слэш из Web API JSON C#

но в формате JSON, то выглядеть следующим образом:

[{"BackgroundImage":"images\/Chinese\/AbaloneEggCustard.jpg", ......}] 

Могу ли я узнать, как удалить косую черту? Нужно удалить его, надеюсь, я смогу получить доступ к изображениям, когда свяжусь с лазурной.


Вот мой контроллер коды:

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')); 

      }); 
     }); 
    }); 
+1

который обратный слэш имеют в виду ваш? –

+0

задняя косая черта = косая черта? –

+0

back slash = \ slash =/ – forsakenedsj

ответ

1

Предполагая, что вы вызова API, и получить обратно обычно сбежавшего объект JSON:

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

Если y ou're сохранение результата в текстовый файл, вы можете использовать JavaScriptSerializer:

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

Текстовый файл сохранен должен быть неэкранированный строкой.

+0

, но если я хочу показать в JSON без обратной косой черты, которая является этим \, как я могу это сделать? Это связано с getjson? – forsakenedsj

+0

Извините, неправильно понял ваш вопрос, не видел никаких обратных косых черт в исходном сообщении. '/' должен быть экранирован в JavaScript и JSON, поэтому ведущий '' \ '' требуется, но будет исчезать при десериализации обратно в объект CLR или будет правильно интерпретирован как объект JSON. – lukiffer

+0

Так как я буду иметь дело с \ потому что, если я сохраняю как текстовый файл, все еще есть \. Или нет? – forsakenedsj

0

Вы можете использовать это:

string deserializedString = Newtonsoft.Json.JsonConvert.DeserializeObject<string>(serializedString); 
Смежные вопросы