如何解析带有阿拉伯语和HTML标记的JSON

How to parse JSON with Arabic and HTML tags inside?

本文关键字:JSON HTML 何解析 阿拉伯语      更新时间:2023-09-26

我正在使用XMLHttpRequest调用ASMX web服务。它工作得很好,直到他们用阿拉伯语更新了他们的数据,我注意到响应文本里面有一些HTML标签,像下面这样:

{"文章":[{" id ": " 198715 ", "名称":"المستقبلوالاشتراكييقاطعان:ساعاتعلى الحسم","date":"Mon 13 May 2013 - 5:11:00 .点"、"描述":"

ساعاتعلىالجلسةالعامةالمصيريةتمرسريعةفيالجدولالزمنيلقوى14آذارغيرالمتوافقةحتىاللحظةعلىقانونيخرجهامنتصرة، اقله، امام الرأي العام…

انقسام عامودي، تظهّر أكثر بعدانتهاءاجتماعهيئةمكتبمجلسالنوابمندوناتفاقوبالتاليالابقاءعلى' "الاقتراحالارثوذكسي'"بنداوحيداعلىجدولاعمالالجلسةالعامةفي15أيار。

عدمالاتفاقتبعهاتفاقعلىعدمالمشاركةفيالجلسةمنقبلتيارالمستقبلومعهالاشتراكيوالنوابالمستقلون،فيماتبقي'"الكتائب'"على صمتها، وكذلك '"القوات'"。

موقف المستقبل اوضحه النائباحمدفتفتفيحديثلوكالة'"المركزية'"حيثجددالتأكيدانالقانون' "الارثوذكسي'"غيرشرعيلانهلميقرّفيمكتبالمجلس،مشيراًالىان' "الرئيسنبيهبريتجاوزصلاحياتهفيهذاالموضوع،وتجاوزكلالاعرافالتي كنّا نتعاطى بها حتى اليوم。

وكان فتفت زار ومستشارالرئيسسعدالحريريمحمدشطح،رئيسحزب'"الكتائب'"أمينالجميلفيبيتالكتائبالمركزيفيالصيفي،حيث'"تمالتباحثبالأوضاعالعامة،خصوصاموضوعقانونالإنتخابات'"،مندونانتتوضحالرؤيةالكتائبية。

الىذلك،فقداكدامينسرهيئةالمكتبالنائبمروانحمادةانا'"يجدولتوزعهامانةالمجلسمندوناقرارهالمسبقفيهيئةالمكتبيعتبرغيرقانونيومخالفاللنظامالداخلي'"،مشدداعلىان'"عقدالجلسةفيهذاالشكل يجعلها غير ميثاقية'"。

تزامنا، رد المجلس الدستوريطلبإبطالتعليقالمهلفيقانونالانتخابوقبلالمراجعةالواردةفيالمهلةالقانونية。

"、" mainImage":"http://mytv.com/pictures/articles/130513061232124.jpg","源":"、"sourceImage":"、":"作者"、"authorImage":"、"关键词":[{"标题":"}],"照片":[],"视频":[]}

下面是我的调用函数:

smart.apiRequestSync = function(host,operation,param,baseEntity, callBack){
  var url = "";
  var querystr='';
  if (req != null)
    req.destroy();
  req = new XMLHttpRequest();
  req.onreadystatechange=function() {
    if (req.readyState==4 && req.status==200) {
      if (req.responseText.overrideMimeType) {
        req.responseText.overrideMimeType("application/json");
      }
      var returnResult = req.responseText;
      //returnResult=returnResult.replace(/<'/?([a-z][a-z0-9]*)'b[^>]*>/gi, '');
      alert(returnResult);
      var result = null;
      if (baseEntity == "" || typeof(baseEntity) == "undefined")
        result= $j.parseJSON(returnResult);
      else {
        result= $j.parseJSON(returnResult);
        result = result[baseEntity];
      }
      callBack(result);
    }
  }
  for(var i=0; i < param.length;i++) {
    if(i%2==0) {
      querystr += param[i];
    } else {
      if(i==((param.length)-1)) {
        querystr +='='+param[i]
      } else {
        querystr +='='+param[i]+'&';
      }
    }
  }
  //HOST//operation//?par1=value1 &par2=val2.....parN=valN
  url=host+operation+querystr;
  try{
    var contentType = "application/x-www-form-urlencoded ; charset=UTF-8";
    req.open("GET", url, false);
    req.setRequestHeader('Content-Type', contentType);
    req.send();
  } catch (err){}
};

错误是:

SyntaxError: cannot parse JSON string

有谁知道我怎么解决这个问题吗?

JSON不关心编码。

{"articles":[{"id":"198715","name":"المستقبل والاشتراكي يقاطعان: ساعاتعلى الحسم","date":"Mon 13 May 2013 - 5:11:00PM","description":"<p>ساعات على الجلسة العامة المصيرية تمر سريعة فيالجدول الزمني لقوى 14 آذار غير المتوافقة حتى اللحظة على قانون يخرجهامنتصرة، اقله، امام الرأي العام...</p><p>انقسام عامودي، تظهّر أكثر بعدانتهاء اجتماع هيئة مكتب مجلس النواب من دون اتفاق وبالتالي الابقاء على'"الاقتراح الارثوذكسي'" بندا وحيدا على جدول اعمال الجلسة العامة في 15أيار.</p><p>عدم الاتفاق تبعه اتفاق على عدم المشاركة في الجلسة من قبلتيار المستقبل ومعه الاشتراكي والنواب المستقلون، فيما تبقي '"الكتائب'"على صمتها، وكذلك '"القوات'".</p><p</p><p>موقف المستقبل اوضحه النائباحمد فتفت في حديث لوكالة '"المركزية'" حيث جدد التأكيد ان القانون'"الارثوذكسي'" غير شرعي لانه لم يقرّ في مكتب المجلس، مشيراً الى ان'"الرئيس نبيه بري تجاوز صلاحياته في هذا الموضوع، وتجاوز كل الاعرافالتي كنّا نتعاطى بها حتى اليوم.</p><p</p><p>وكان فتفت زار ومستشارالرئيس سعد الحريري محمد شطح، رئيس حزب '"الكتائب'" أمين الجميل في بيتالكتائب المركزي في الصيفي، حيث '"تم التباحث بالأوضاع العامة، خصوصاموضوع قانون الإنتخابات'"، من دون ان تتوضح الرؤية الكتائبية.</p><p></p><p>الى ذلك، فقد اكد امين سر هيئة المكتب النائب مروان حمادة ان '"ايجدول توزعه امانة المجلس من دون اقراره المسبق في هيئة المكتب يعتبر غيرقانوني ومخالفا للنظام الداخلي'"، مشددا على ان '"عقد الجلسة في هذاالشكل يجعلها غير ميثاقية'".</p><p</p><p>تزامنا، رد المجلس الدستوريطلب إبطال تعليق المهل في قانون الانتخاب وقبل المراجعة الواردة فيالمهلةالقانونية.</p>","mainImage":"http://mytv.com/pictures/articles/130513061232124.jpg","source":"","sourceImage":"","author":"","authorImage":"","keywords":[{"title":""}],"photos":[],"videos":[]}]}

http://jsonlint.com/似乎认为这是有效的。我在末尾添加了缺失的]}

在JSON中字符串中不能有实际的换行控制字符。所有换行符需要转换为'n或删除。

你还错过了数组和根对象的末尾:

  ]
}