Я хотел прочитать и проанализировать мой действительный файл JSON. но может быть, я делаю что-то не так при загрузке, следовательно, не могу получить правильный файл
У меня есть файл json, содержащий действительные данные JSON. Но когда я загружаю его с помощью:
(StreamReader r = new StreamReader(filePath))
{
string json = r.ReadToEnd();
}
я получил что-то вроде этого:
{\n \"item\": [\n {\n \"name\": \"Infinix smart 3 PLUS - 6.2\\\"water drop Display - Triple Rear Camera - 32GB ROM,2GB RAM-Fingerprint sensor-Face unlock\",\n \"url\": \"https://www.daraz.pk/products/infinix-smart-3-plus-62water-drop-display-triple-rear-camera-32gb-rom-2gb-ram-20ghz-quadcore-processor-i113246358-s1264944281.html?search=1\",\n \"price\": \"Rs. 17,999\",\n \"Image\": \"https://static-01.daraz.pk/p/2066cca3b8cf77faa08eaeedfbe69b12.jpg_340x340q80.jpg\",\n \"Detail\": \"Specifications of Infinix smart 3 PLUS - 6.2\\\"water drop Display - Triple Rear Camera - 32GB ROM,2GB RAM-Fingerprint sensor-Face unlock\\nBrand Infinix SKU 113246358_PK-1264944281 Model Smart 3 Plus\\nWhat’s in the box1xmobile with accessories\\nVIEW MORE\"\n },\n {\n \"name\": \"Honor 7C - 5.99\\\" FHD Display - 3GB RAM - 32GB ROM - Fingerprint Sensor & Face Unlock\",\n \"url\": \"https://www.daraz.pk/products/honor-7c-599-fhd-display-3gb-ram-32gb-rom-fingerprint-sensor-face-unlock-i3287863-s12693427.html?search=1\",\n \"price\": \"Rs. 18,999\",\n \"Image\": \"https://static- .........
Теперь я использовал это для анализа данных
var jobj = JObject.Parse(json);
поэтому я получил такой результат:
{
{
"item": [
{
"name": "Infinix smart 3 PLUS - 6.2\"water drop Display - Triple Rear Camera - 32GB ROM,2GB RAM-Fingerprint sensor-Face unlock",
"url": "https://www.daraz.pk/products/infinix-smart-3-plus-62water-drop-display-triple-rear-camera-32gb-rom-2gb-ram-20ghz-quadcore-processor-i113246358-s1264944281.html?search=1",
"price": "Rs. 17,999",
"Image": "https://static-01.daraz.pk/p/2066cca3b8cf77faa08eaeedfbe69b12.jpg_340x340q80.jpg",
"Detail": "Specifications of Infinix smart 3 PLUS - 6.2\"water drop Display - Triple Rear Camera - 32GB ROM,2GB RAM-Fingerprint sensor-Face unlock\nBrand Infinix SKU 113246358_PK-1264944281 Model Smart 3 Plus\nWhat’s in the box1xmobile with accessories\nVIEW MORE"
},
{
"name": "Honor 7C - 5.99\" FHD Display - 3GB RAM - 32GB ROM - Fingerprint Sensor & Face Unlock",
"url": "https://www.daraz.pk/products/honor-7c-599-fhd-display-3gb-ram-32gb-rom-fingerprint-sensor-face-unlock-i3287863-s12693427.html?search=1",
"price": "Rs. 18,999",
"Image": "https://static-01.daraz.pk/original/d73129d06b06db79072e07cd132684dd.jpg_340x340q80.jpg",
"Detail": "Brand Warranty\nScreen: 6.0 inches,IPS LCD capacitive touchscreen,1440 x 720\nMemory: 3GB RAM, 32GB ROM\nProcessor: Octa-core (1.8 GHz Cortex-A53) Qualcomm SDM450 Snapdragon\nCamera: 13 + 2 MP Main Camera, 8 MP Selfie Camera\nBattery:Non-removable Li-Ion 3000 mAh\nOS:Android 8.1 (Oreo)\nSIM: Dual SIM (Nano-SIM, dual stand-by)\nSpecifications of Honor 7C - 5.99\" FHD Display - 3GB RAM - 32GB ROM - Fingerprint Sensor & Face Unlock\nBrand Honor SKU HO688EL0VJIZWNAFAMZ-4039820 Phone Type Smartphone Type of battery Lithium battery Resolution HD Screen Type IPS LCD Processor Type Octa-core Operating system version Android 8.0 Oreo Warranty Policy EN 1-Year Brand Warranty (Inovi Technologies) RAM Memory 3GB Operating System Android Battery Capacity 3000 - 3999 mAh Storage Capacity 32 GB Number of SIM Slots Dual Condition New Camera Front (Megapixels) 8 MP Camera Back (Megapixels) 13 MP Video Resolution 1080p Screen Size (inches) 5.6 - 6 Inch PPI 300-400 PPI Phone Features Touchscreen,GPS,Fingerprint Sensor,Expandable Memory,WiFi,NFC Network Connections GSM,3G,4G\nWhat’s in the boxPhone, Charger, USB Cable, Manual(s), Warranty Card\nVIEW MORE"
}}
Но загруженный файл json никогда не давал мне результатов. Я пытался даже это проанализировать в моей модели, но это всегда дает мне ноль:
var someType = JsonConvert.DeserializeObject<RootObj>(jobj.ToString());
Когда я проверил этот онлайн-валидатор JSON:
https://jsonlint.com/
Я обнаружил, что получаю двойные скобки ("{{" и "}}") в начале и конце файла json. который не действителен и должен быть удален.
У меня вопрос, где я делаю неправильно, зачем получать двойные фигурные скобки в начале и в конце, хотя мой файл json был верным.
EDIT:
Я обновил свой полный файл JSON, который дает двойные скобки в результате. тогда как исходные данные имеют 1 фигурные скобки в начале и в конце.
using (StreamReader r = new StreamReader(icon_path))
{
string json = r.ReadToEnd();
var jobj = JObject.Parse(json);
List<ObjectList> items =
JsonConvert.DeserializeObject<List<ObjectList>>(jobj.ToString());
}
Выше приведены полные строки для анализа моих данных в моей модели
Это мой модельный класс
public class ObjectList
{
public string name { get; set; }
public string url { get; set; }
public string price { get; set; }
public string Image { get; set; }
public string Detail { get; set; }
}