2015-11-17 2 views
0

я называю 3 участника restAPI и получить обратно плохой JSON, что это лучший способ, чтобы исправить JSON:Invalid JSON преобразовать в XML

{ 
"site": { 
     "name":{"2":"stringstuff"}, 
     "primaryname":{"ref":2,"dname":"stringstuff"}  
    } 
} 

, как вы можете увидеть название должно выглядеть на самом деле основным названием , При преобразовании в XML выглядит следующим образом:

<sites> 
    <name> 
     <2>stringstuff</2> 
    </name> 
    <primaryname> 
     <ref>2</ref>  
     <dname>stringstuff</dname> 
    </primaryname> 
</sites> 

Есть менее сложный способ, чтобы исправить это, чем преобразование к объекту, фиксируя данные, способ, а затем преобразование объекта в XML

(Примечание I я использую библиотеки Newtonsoft JSON.Net, и требование заключается в том, что он должен быть возвращен с моего веб-сервиса как XML).

+2

Что делать вы подразумеваете под * Есть ли более сложный способ исправить это, чем преобразовать в Object ... *? Что вы делаете сейчас, и почему это не работает? – dbc

+0

Не существует ли вероятность того, что сторонняя сторона установит свой API? – Dijkgraaf

+0

Значение есть процесс, который требует меньше шагов, вместо создания пользовательского объекта для хранения JSON, затем исправить, а затем преобразовать в XML. В настоящее время мы зацикливаемся через определенное количество раз, и любые теги xml, которые являются числовыми, мы корректируем строку, а затем перезагружаем xml (который в конечном итоге сломается, когда числовые теги будут больше, чем цикл, поскольку теги основаны на увеличении номера идентификатора). Третья сторона очень медленная, и мы не можем ждать. – Shannon

ответ

0

Я не уверен, почему вы говорите, что этот json недействителен. Мне это хорошо. Я могу преобразовать его в XML с помощью функции XPath 3.1 JSON к XML() и оно выходит, как это:

<?xml version="1.0" encoding="UTF-8"?> 
<map xmlns="http://www.w3.org/2005/xpath-functions"> 
    <map key="site"> 
     <map key="name"> 
      <string key="2">stringstuff</string> 
     </map> 
     <map key="primaryname"> 
      <number key="ref">2</number> 
      <string key="dname">stringstuff</string> 
     </map> 
    </map> 
</map> 

который можно легко трансформировать с помощью XSLT к чему-то еще, что вы хотите

Смежные вопросы