Autor
|
Tema: Reemplazar comillas dobles dentro de comillas dobles. (Leído 8,565 veces)
|
seba123neo
|
Hola, tengo un string de JSON que devuelve mal en realidad y mete una doble comilla dentro de otra doble comilla, lo que quiero es saber como reemplazar la doble comilla, pero sin reemplazar las otras dobles comillas de las otras propiedades, por ejemplo lo que devuelve es esto:
{"accionObjeto":"post","accionTipo":"comentario","ts":"02:48:55","nick":"seba123neo","userId":"1180918","id":15521634,"accion_name":"Hola","url":"","titulo":"Hola como" estas"}
como ven todo esta bien, solo que esa doble comilla a lo ultimo la necesito reemplazar, pero sin reemplazar las otras sino el JSON es unutil.
creo que la solucion es RegEx, pero no encuentro la misma para hacer esto.
saludos.
|
|
« Última modificación: 19 Agosto 2012, 23:21 pm por seba123neo »
|
En línea
|
|
|
|
Keyen Night
Desconectado
Mensajes: 496
Nothing
|
No es tan prolijo pero así lo resolví Dim Texto As String = String.Format("{1}{0}accionObjeto{0}:{0}post{0},{0}accionTipo{0}:{0}comentario{0},{0}ts{0}:{0}02:48:55{0},{0}nick{0}:{0}seba123neo{0},{0}userId{0}:{0}1180918{0},{0}id{0}:15521634,{0}accion_name{0}:{0}Hola{0},{0}url{0}:{0}titulo{0}:{0}Hola como{0} estas{0}{2}", Convert.ToChar(34), "{", "}") Dim Expresión As Match = Regex.Match(Texto, "\x22[\w\s]+\x22\}$") Dim Reemplazar As String = Regex.Replace(Expresión.Value, "^\x22", "") Texto = Texto.Replace(Expresión.Value, Reemplazar) Console.WriteLine(Texto) Console.ReadKey()
En la expresión regular \x22[\w\s]+\x22\}$ tienes que reemplazar [\w\s] por, más grupos porque allí solo captura números, letras y espacios en "titulo":.
|
|
|
En línea
|
La Fé Mueve Montañas... ...De Dinero
La programación es más que un trabajo es más que un hobby es una pasión...
|
|
|
seba123neo
|
Hola, gracias por responder, lo pude solucionar con algo que me paso el usuario LeandroA Option Explicit Private Sub Command1_Click() Debug. Print FixJSON (Text1 ) End Sub Private Function FixJSON(ByVal sJSON As String) As String Dim sArr() As String Dim lPos As Long, i As Long If Len(sJSON) = 0 Then Exit Function sArr() = Split(sJSON, ",") For i = 0 To UBound(sArr) Do While UBound(Split(sArr(i), Chr$(34))) > 4 lPos = InStr(sArr(i), ":") lPos = InStr(lPos + 2, sArr(i), Chr$(34)) sArr(i) = Left$(sArr(i), lPos - 1) & Mid$(sArr(i), lPos + 1) Loop Next FixJSON = Join(sArr, ",") End Function
saludos.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Insertar comillas dentro de un WriteLine
« 1 2 »
Programación Visual Basic
|
Erika Vega
|
10
|
5,382
|
23 Junio 2006, 13:06 pm
por Hans el Topo
|
|
|
Como almacenar una variable que contiene comillas dobles?
PHP
|
athlit
|
7
|
8,154
|
9 Junio 2009, 13:19 pm
por athlit
|
|
|
Ayuda con listas dobles Enlazadas
Programación C/C++
|
larezaka
|
3
|
3,220
|
1 Julio 2012, 17:02 pm
por larezaka
|
|
|
Ayuda con Formularios con listas Dobles
PHP
|
larezaka
|
0
|
1,765
|
7 Octubre 2012, 16:52 pm
por larezaka
|
|
|
[Resuelto]: Alternativa a una solución de escapar comillas simples y dobles
« 1 2 »
Desarrollo Web
|
Leguim
|
16
|
12,272
|
1 Agosto 2020, 01:14 am
por WHK
|
|