2014-08-29 34 views
0

如何從這兩個相似的Json獲得模型結果: 我嘗試了各種方法,但仍然無法弄清楚。 在此先感謝...在Json解析中獲取模型

eg : result.ImagePath 

1.

{"Success":"True"ImagePath":"D:\Wyo\PH\TS\Images\Preview\Admin\Toy\Soli.jpg"} 

「2.

ContentResult類型爲JSON

Content="{"Success":"True"ImagePath":"D:\Wyo\PH\TS\Images\Preview\Admin\Toy\Soli.jpg"}" 


Controller's sent data : 

    ContentResult result = Content("{\"Success\":\"" + vm.Success + "\"ImagePath\":\"" + vm.ImagePath + "\"}"); 
    result.ContentType = "application/json"; //-- "application/json" //- "text/plain" 

    JsonResult jsResult = Json(result, JsonRequestBehavior.AllowGet); 
    return jsResult; //result 
+0

您的預期產出是多少?你想將你的JSON轉換爲類對象嗎? – Shyju 2014-08-29 14:20:21

+0

只是想從這個響應中獲取ImagePath(json) – LastBye 2014-08-29 14:22:53

+0

對於頻繁的json用戶來說,應該很容易,不要在這裏尋找綁定,ko或者這樣的事情,這兩個屬性都是簡單的字符串,它以json的形式傳遞。 – LastBye 2014-08-29 14:24:45

回答

1

通過假設你的JSON內容看起來像這樣

{ 
    "Success": "True", 
    "ImagePath": "Images/Preview/Admin/Toy/Soli.jpg" 
} 

你應該能夠閱讀它這樣

$.getJSON("@Url.Action("ImgPath","Home")",function(data){ 
    alert(data.ImagePath); 
}); 

這應該工作,如果你在你的Home控制器稱爲ImgPath一個動作方法返回的JSON按上述格式。

這裏是工作示例https://dotnetfiddle.net/jpQb4D

注:的物理路徑你不應該回到圖像(d:// Wylix ....)。你應該將相對/絕對url返回給圖像並使用它。

+0

老兄的數據是通過控制器發送的,我們不知道它們是什麼,但它們是簡單的字符串,我們不想投它們,我發佈了示例生成的json,知道如何處理它以獲取發佈信息?簡單的$ .parseJSON在這裏不起作用。 – LastBye 2014-08-29 14:30:02

+0

當你的控制器返回正確的JSON時,你爲什麼要返回字符串? – Shyju 2014-08-29 14:30:49

+0

我已經得到了json所以不想再次得到它,只是想玩結果,讓我發佈示例代碼在控制器中,如果json的格式有錯誤,或者你知道更好的方法來獲得數據出來讓我知道... – LastBye 2014-08-29 14:32:05

0

您是否嘗試過使用JSON.NET?如果你使用json2csharp,你應該很好。

使用json2csharp我得到下面的類:

public class RootObject 
{ 
    public string Success { get; set; } 
    public string ImagePath { get; set; } 
} 

然後獲取類從字符串填入你可以做這樣的事情:

RootObject rootObject = JsonConvert.DeserializeObject<RootObject>(json); 

這是否幫助?