|
Lines 1-5
Link Here
|
| 1 |
/******************************************************************************* |
1 |
/******************************************************************************* |
| 2 |
* Copyright (c) 2008, 2012 Innoopract Informationssysteme GmbH. |
2 |
* Copyright (c) 2008, 2013 Innoopract Informationssysteme GmbH. |
| 3 |
* All rights reserved. This program and the accompanying materials |
3 |
* All rights reserved. This program and the accompanying materials |
| 4 |
* are made available under the terms of the Eclipse Public License v1.0 |
4 |
* are made available under the terms of the Eclipse Public License v1.0 |
| 5 |
* which accompanies this distribution, and is available at |
5 |
* which accompanies this distribution, and is available at |
|
Lines 60-101
Link Here
|
| 60 |
} |
60 |
} |
| 61 |
|
61 |
|
| 62 |
static String quoteAndEscapeString( String string ) { |
62 |
static String quoteAndEscapeString( String string ) { |
| 63 |
StringBuilder resultBuffer = new StringBuilder(); |
63 |
StringBuilder buffer = new StringBuilder( string.length() + 2 ); |
| 64 |
resultBuffer.append( '"' ); |
64 |
appendQuotedAndEscapedString( buffer, string ); |
| 65 |
resultBuffer.append( escapeString( string ) ); |
65 |
return buffer.toString(); |
| 66 |
resultBuffer.append( '"' ); |
|
|
| 67 |
return resultBuffer.toString(); |
| 68 |
} |
66 |
} |
| 69 |
|
67 |
|
| 70 |
static String escapeString( String string ) { |
68 |
static void appendQuotedAndEscapedString( StringBuilder buffer, String string ) { |
| 71 |
StringBuilder resultBuffer = new StringBuilder(); |
69 |
buffer.append( '"' ); |
| 72 |
int length = string.length(); |
70 |
appendEscapedString( buffer, string ); |
|
|
71 |
buffer.append( '"' ); |
| 72 |
} |
| 73 |
|
| 74 |
static void appendEscapedString( StringBuilder buffer, String string ) { |
| 75 |
char[] chars = string.toCharArray(); |
| 76 |
int length = chars.length; |
| 73 |
for( int i = 0; i < length; i++ ) { |
77 |
for( int i = 0; i < length; i++ ) { |
| 74 |
char ch = string.charAt( i ); |
78 |
char ch = chars[ i ]; |
| 75 |
if( ch == '"' || ch == '\\' ) { |
79 |
if( ch == '"' || ch == '\\' ) { |
| 76 |
resultBuffer.append( '\\' ); |
80 |
buffer.append( '\\' ); |
| 77 |
resultBuffer.append( ch ); |
81 |
buffer.append( ch ); |
| 78 |
} else if( ch == '\n' ) { |
82 |
} else if( ch == '\n' ) { |
| 79 |
resultBuffer.append( "\\n" ); |
83 |
buffer.append( '\\' ); |
|
|
84 |
buffer.append( 'n' ); |
| 80 |
} else if( ch == '\r' ) { |
85 |
} else if( ch == '\r' ) { |
| 81 |
resultBuffer.append( "\\r" ); |
86 |
buffer.append( '\\' ); |
|
|
87 |
buffer.append( 'r' ); |
| 82 |
} else if( ch == '\t' ) { |
88 |
} else if( ch == '\t' ) { |
| 83 |
resultBuffer.append( "\\t" ); |
89 |
buffer.append( '\\' ); |
|
|
90 |
buffer.append( 't' ); |
| 84 |
} else if( ch == '\u2028' ) { |
91 |
} else if( ch == '\u2028' ) { |
| 85 |
resultBuffer.append( "\\u2028" ); |
92 |
buffer.append( "\\u2028" ); |
| 86 |
} else if( ch == '\u2029' ) { |
93 |
} else if( ch == '\u2029' ) { |
| 87 |
resultBuffer.append( "\\u2029" ); |
94 |
buffer.append( "\\u2029" ); |
| 88 |
} else if( ch >= CONTROL_CHARACTERS_START && ch <= CONTROL_CHARACTERS_END ) { |
95 |
} else if( ch >= CONTROL_CHARACTERS_START && ch <= CONTROL_CHARACTERS_END ) { |
| 89 |
resultBuffer.append( "\\u00" ); |
96 |
buffer.append( "\\u00" ); |
| 90 |
if( ch <= 0x000f ) { |
97 |
if( ch <= 0x000f ) { |
| 91 |
resultBuffer.append( "0" ); |
98 |
buffer.append( '0' ); |
| 92 |
} |
99 |
} |
| 93 |
resultBuffer.append( Integer.toHexString( ch ) ); |
100 |
buffer.append( Integer.toHexString( ch ) ); |
| 94 |
} else { |
101 |
} else { |
| 95 |
resultBuffer.append( ch ); |
102 |
buffer.append( ch ); |
| 96 |
} |
103 |
} |
| 97 |
} |
104 |
} |
| 98 |
return resultBuffer.toString(); |
|
|
| 99 |
} |
105 |
} |
| 100 |
|
106 |
|
| 101 |
private static class JsonPrimitive extends JsonValue { |
107 |
private static class JsonPrimitive extends JsonValue { |
|
Lines 106-111
Link Here
|
| 106 |
this.value = value; |
112 |
this.value = value; |
| 107 |
} |
113 |
} |
| 108 |
|
114 |
|
|
|
115 |
@Override |
| 109 |
public String toString() { |
116 |
public String toString() { |
| 110 |
return value; |
117 |
return value; |
| 111 |
} |
118 |
} |