FimfictionAPI: quote problem in json "parsing"
[fanfix.git] / src / be / nikiroo / fanfix / supported / FimfictionApi.java
index 591bbb08736c921333b885c19548c51e7d5c78c2..1594d5e18f365d14bfeb227e057bdec07c528bbf 100644 (file)
@@ -281,6 +281,34 @@ class FimfictionApi extends BasicSupport {
                        return null;
                }
 
-               return getKeyText(json.substring(pos), "\"", null, "\"");
+               String result = null;
+               String wip = json.substring(pos);
+
+               pos = nextUnescapedQuote(wip, 0);
+               if (pos >= 0) {
+                       wip = wip.substring(pos + 1);
+                       pos = nextUnescapedQuote(wip, 0);
+                       if (pos >= 0) {
+                               result = wip.substring(0, pos);
+                       }
+               }
+
+               return result;
+       }
+
+       // next " but don't take \" into account
+       static private int nextUnescapedQuote(String result, int pos) {
+               while (pos >= 0) {
+                       pos = result.indexOf("\"", pos);
+                       if (pos == 0 || (pos > 0 && result.charAt(pos - 1) != '\\')) {
+                               break;
+                       }
+
+                       if (pos < result.length()) {
+                               pos++;
+                       }
+               }
+
+               return pos;
        }
 }