JSONPath ਟੈਸਟਰ ਇੱਕ ਵਿਹਾਰਕ ਸਾਧਨ ਹੈ ਜੋ JSON ਡੇਟਾ ਦੇ ਵਿਰੁੱਧ JSONPath ਐਕਸਪ੍ਰੈਸ਼ਨਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਦੀ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਸਰਲ ਬਣਾਉਂਦਾ ਹੈ। ਜਦੋਂ ਤੁਸੀਂ ਆਪਣਾ JSON ਡੇਟਾ ਅਤੇ ਇੱਕ JSONPath ਐਕਸਪ੍ਰੈਸ਼ਨ ਇਨਪੁਟ ਕਰਦੇ ਹੋ, ਤਾਂ ਇਹ ਸਾਧਨ ਤੁਰੰਤ ਉਹਨਾਂ ਮੁੱਲਾਂ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦਾ ਹੈ ਜੋ ਤੁਹਾਡੇ ਐਕਸਪ੍ਰੈਸ਼ਨ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਹਨ, ਨਾਲ ਹੀ ਮੂਲ JSON ਦੇ ਅੰਦਰ ਉਹਨਾਂ ਦੇ ਖਾਸ ਪਾਥ (path) ਵੀ ਦਿਖਾਉਂਦਾ ਹੈ। ਇਹ ਸੁਵਿਧਾ ਤੁਹਾਨੂੰ ਇਹ ਸਮਝਣ ਵਿੱਚ ਮਦਦ ਕਰਦੀ ਹੈ ਕਿ ਤੁਹਾਡਾ ਐਕਸਪ੍ਰੈਸ਼ਨ JSON ਡੇਟਾ ਵਿੱਚੋਂ ਕਿਹੜਾ ਹਿੱਸਾ ਬਾਹਰ ਕੱਢੇਗਾ।
ਇਹ ਟੂਲ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ API ਡਿਵੈਲਪਰਾਂ, ਟੈਸਟਰਾਂ, ਡੇਟਾ ਇੰਜੀਨੀਅਰਾਂ, ਅਤੇ ਸਪੋਰਟ ਕਰਮਚਾਰੀਆਂ ਲਈ ਲਾਭਦਾਇਕ ਹੈ। ਇਹ ਉਹਨਾਂ ਸਾਰੇ ਉਪਭੋਗਤਾਵਾਂ ਦੀ ਮਦਦ ਕਰਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ JSON ਡੇਟਾ ਵਿੱਚੋਂ ਕਿਸੇ ਖਾਸ ਮੁੱਲ ਨੂੰ ਉਸਦੀ ਅਸਲ ਸਥਿਤੀ ਨੂੰ ਗੁਆਏ ਬਿਨਾਂ ਕਾਪੀ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
JSONPath ਸਿੰਟੈਕਸ ਅਤੇ ਆਮ ਪੈਟਰਨ
JSONPath ਦੀ ਵਰਤੋਂ JSON ਢਾਂਚੇ ਵਿੱਚੋਂ ਡੇਟਾ ਨੂੰ ਲੱਭਣ ਅਤੇ ਫਿਲਟਰ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਟੂਲ ਕਈ ਤਰ੍ਹਾਂ ਦੇ ਆਮ JSONPath ਪੈਟਰਨਾਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ:
- ਰਿਕਰਸਿਵ ਡਿਸੈਂਟ (Recursive Descent):
$..priceਵਰਗੇ ਐਕਸਪ੍ਰੈਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਤੁਸੀਂ JSON ਢਾਂਚੇ ਵਿੱਚ ਕਿਸੇ ਵੀ ਡੂੰਘਾਈ 'ਤੇ ਮੌਜੂਦ ਤੱਤਾਂ ਨੂੰ ਆਸਾਨੀ ਨਾਲ ਲੱਭ ਸਕਦੇ ਹੋ। - ਫਿਲਟਰ ਐਕਸਪ੍ਰੈਸ਼ਨ (Filters): ਤੁਸੀਂ ਖਾਸ ਸ਼ਰਤਾਂ ਦੇ ਅਧਾਰ 'ਤੇ ਡੇਟਾ ਦੀ ਚੋਣ ਕਰਨ ਲਈ ਫਿਲਟਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ, ਜਿਵੇਂ ਕਿ
[?@.price < 10]। - ਐਰੇ ਸਲਾਈਸ (Array Slices): ਐਰੇ ਦੇ ਖਾਸ ਹਿੱਸਿਆਂ ਜਾਂ ਤੱਤਾਂ ਨੂੰ ਚੁਣਨ ਲਈ ਸਲਾਈਸਿੰਗ ਵਿਧੀਆਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।
ਇਹਨਾਂ ਪੈਟਰਨਾਂ ਦੀ ਮਦਦ ਨਾਲ, ਗੁੰਝਲਦਾਰ ਅਤੇ ਨੇਸਟਡ (nested) JSON ਆਬਜੈਕਟਸ ਵਿੱਚੋਂ ਵੀ ਸਹੀ ਡੇਟਾ ਪੁਆਇੰਟਾਂ ਨੂੰ ਕੁਸ਼ਲਤਾ ਨਾਲ ਬਾਹਰ ਕੱਢਿਆ ਜਾ ਸਕਦਾ ਹੈ।
ਇਨਪੁਟ ਸੀਮਾਵਾਂ ਅਤੇ ਨਿਯਮ
ਸਹੀ ਮੁਲਾਂਕਣ ਅਤੇ ਸਿਸਟਮ ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਨੂੰ ਬਣਾਈ ਰੱਖਣ ਲਈ, ਇਸ ਟੂਲ ਵਿੱਚ ਕੁਝ ਸੀਮਾਵਾਂ ਅਤੇ ਨਿਯਮ ਨਿਰਧਾਰਤ ਕੀਤੇ ਗਏ ਹਨ:
- JSON ਇਨਪੁਟ ਸੀਮਾ: ਟੈਕਸਟ ਖੇਤਰ ਵਿੱਚ ਪੇਸਟ ਕੀਤੇ ਜਾਣ ਵਾਲੇ JSON ਡੇਟਾ ਦੀ ਅਧਿਕਤਮ ਸੀਮਾ 500,000 ਅੱਖਰ ਹੈ। ਜੇਕਰ ਡੇਟਾ ਇਸ ਸੀਮਾ ਤੋਂ ਵੱਧ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਟੂਲ "ਇਹ JSON ਇੱਥੇ ਟੈਸਟ ਕਰਨ ਲਈ ਬਹੁਤ ਵੱਡਾ ਹੈ। ਇੱਕ ਛੋਟਾ ਨਮੂਨਾ ਅਜ਼ਮਾਓ।" ਸੁਨੇਹਾ ਦਿਖਾਉਂਦਾ ਹੈ।
- JSONPath ਐਕਸਪ੍ਰੈਸ਼ਨ ਸੀਮਾ: ਐਕਸਪ੍ਰੈਸ਼ਨ ਫੀਲਡ ਵਿੱਚ ਵੱਧ ਤੋਂ ਵੱਧ 4,000 ਅੱਖਰ ਦਰਜ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ। ਇਸ ਤੋਂ ਲੰਬੇ ਐਕਸਪ੍ਰੈਸ਼ਨ ਹੋਣ 'ਤੇ "ਇਹ JSONPath ਐਕਸਪ੍ਰੈਸ਼ਨ ਇੱਥੇ ਟੈਸਟ ਕਰਨ ਲਈ ਬਹੁਤ ਲੰਬਾ ਹੈ।" ਸੁਨੇਹਾ ਪ੍ਰਦਰਸ਼ਿਤ ਹੁੰਦਾ ਹੈ।
- ਸਮਾਂ ਸੀਮਾ (Timeout): ਜੇਕਰ ਕੋਈ JSONPath ਐਕਸਪ੍ਰੈਸ਼ਨ ਬਹੁਤ ਗੁੰਝਲਦਾਰ ਹੈ ਅਤੇ ਮੁਲਾਂਕਣ ਵਿੱਚ ਬਹੁਤ ਜ਼ਿਆਦਾ ਸਮਾਂ ਲੈਂਦਾ ਹੈ, ਤਾਂ ਟੂਲ ਇੱਕ ਛੋਟੀ ਸਮਾਂ ਸੀਮਾ ਤੋਂ ਬਾਅਦ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਰੋਕ ਦਿੰਦਾ ਹੈ। ਅਜਿਹੀ ਸਥਿਤੀ ਵਿੱਚ "ਇਸ JSONPath ਨੂੰ ਚੱਲਣ ਵਿੱਚ ਬਹੁਤ ਸਮਾਂ ਲੱਗਿਆ। ਐਕਸਪ੍ਰੈਸ਼ਨ ਨੂੰ ਸੀਮਤ ਕਰੋ ਜਾਂ ਇੱਕ ਛੋਟਾ ਨਮੂਨਾ ਵਰਤੋ।" ਸੁਨੇਹਾ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ।
ਨਤੀਜੇ ਅਤੇ ਤਰੁਟੀਆਂ ਦਾ ਪ੍ਰਬੰਧਨ
ਟੂਲ ਇਨਪੁਟਸ ਦੀ ਵੈਧਤਾ ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ ਅਤੇ ਨਤੀਜਿਆਂ ਨੂੰ ਹੇਠ ਲਿਖੇ ਨਿਯਮਾਂ ਅਨੁਸਾਰ ਪੇਸ਼ ਕਰਦਾ ਹੈ:
- ਵੈਧਤਾ ਜਾਂਚ: ਜੇਕਰ ਦਰਜ ਕੀਤਾ ਗਿਆ JSON ਸਹੀ ਫਾਰਮੈਟ ਵਿੱਚ ਨਹੀਂ ਹੈ, ਤਾਂ "ਇਹ JSON ਵੈਧ ਨਹੀਂ ਹੈ।" ਸੁਨੇਹਾ ਦਿਖਾਇਆ ਜਾਂਦਾ ਹੈ। ਜੇਕਰ ਐਕਸਪ੍ਰੈਸ਼ਨ ਵਿੱਚ ਕੋਈ ਗਲਤੀ ਹੈ, ਤਾਂ "ਇਹ JSONPath ਐਕਸਪ੍ਰੈਸ਼ਨ ਵੈਧ ਨਹੀਂ ਹੈ।" ਪ੍ਰਦਰਸ਼ਿਤ ਹੁੰਦਾ ਹੈ। ਜੇਕਰ ਮੁਲਾਂਕਣ ਅਸਫਲ ਰਹਿੰਦਾ ਹੈ, ਤਾਂ "ਇਸ JSONPath ਦਾ ਮੁਲਾਂਕਣ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" ਸੁਨੇਹਾ ਮਿਲਦਾ ਹੈ।
- ਨਤੀਜਿਆਂ ਦੀ ਸੀਮਾ: ਇਹ ਟੂਲ ਵੱਧ ਤੋਂ ਵੱਧ 200 ਨਤੀਜੇ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਜੇਕਰ ਮੇਲ ਖਾਂਦੇ ਮੁੱਲਾਂ ਦੀ ਗਿਣਤੀ 200 ਤੋਂ ਵੱਧ ਹੈ, ਤਾਂ ਇਹ "ਮੇਲ ਖਾਂਦੇ: 200+" ਅਤੇ "ਪਹਿਲੇ
{max}ਦਿਖਾਏ ਜਾ ਰਹੇ ਹਨ।" ਨੋਟ ਦਿਖਾਉਂਦਾ ਹੈ। - ਕੋਈ ਮੇਲ ਨਾ ਹੋਣਾ: ਜੇਕਰ ਐਕਸਪ੍ਰੈਸ਼ਨ ਦੇ ਅਧਾਰ 'ਤੇ ਕੋਈ ਡੇਟਾ ਨਹੀਂ ਮਿਲਦਾ, ਤਾਂ "ਕੋਈ ਮੇਲ ਨਹੀਂ ਮਿਲਿਆ।" ਸੁਨੇਹਾ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ।
- ਸਾਫ਼ ਕਰਨਾ: ਜਦੋਂ ਤੁਸੀਂ ਇਨਪੁਟਸ ਨੂੰ ਸਾਫ਼ ਕਰਦੇ ਹੋ, ਤਾਂ "ਸਾਫ਼ ਕੀਤਾ ਗਿਆ।" ਸੁਨੇਹਾ ਪ੍ਰਦਰਸ਼ਿਤ ਹੁੰਦਾ ਹੈ।
ਹਰੇਕ ਸਫਲ ਨਤੀਜੇ ਦੇ ਨਾਲ "ਵੇਰਵਾ" ਹੈਡਿੰਗ ਦੇ ਅਧੀਨ ਉਸਦਾ ਮੂਲ ਪਾਥ ਵੀ ਪ੍ਰਦਰਸ਼ਿਤ ਹੁੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਡੇਟਾ ਦੀ ਸਥਿਤੀ ਨੂੰ ਸਮਝਣਾ ਆਸਾਨ ਹੋ ਜਾਂਦਾ ਹੈ।
ਡੇਟਾ ਸੁਰੱਖਿਆ ਅਤੇ ਪ੍ਰੋਸੈਸਿੰਗ
ਤੁਹਾਡੀ ਗੋਪਨੀਯਤਾ ਸਾਡੇ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਤੁਹਾਡੇ JSON ਅਤੇ JSONPath ਦਾ ਟੈਸਟ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। BroBroGo 'ਤੇ ਕੁਝ ਵੀ ਅਪਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ। ਸਾਰੀ ਪ੍ਰਕਿਰਿਆ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਤੁਹਾਡੇ ਆਪਣੇ ਉਪਕਰਣ 'ਤੇ ਹੀ ਸੰਪੰਨ ਹੁੰਦੀ ਹੈ।
ਅਕਸਰ ਪੁੱਛੇ ਜਾਣ ਵਾਲੇ ਸਵਾਲ (FAQ)
ਮੈਂ ਕਿਹੜਾ JSONPath ਸਿੰਟੈਕਸ ਵਰਤ ਸਕਦਾ ਹਾਂ?
ਆਮ JSONPath ਪੈਟਰਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ ਜਿਵੇਂ ਕਿ $.store.book[*].title, $..price ਨਾਲ ਰਿਕਰਸਿਵ ਡਿਸੈਂਟ, [?@.price < 10] ਵਰਗੇ ਫਿਲਟਰ ਅਤੇ ਐਰੇ ਸਲਾਈਸ।
ਹਰੇਕ ਨਤੀਜਾ ਇੱਕ ਪਾਥ (path) ਕਿਉਂ ਦਿਖਾਉਂਦਾ ਹੈ?
ਪਾਥ ਇਹ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਸਰੋਤ JSON ਵਿੱਚ ਮੁੱਲ ਕਿੱਥੋਂ ਆਇਆ ਹੈ, ਤਾਂ ਜੋ ਤੁਸੀਂ ਇਸਦੀ ਸਥਿਤੀ ਨੂੰ ਗੁਆਏ ਬਿਨਾਂ ਕਿਸੇ ਮੇਲ ਖਾਂਦੇ ਮੁੱਲ ਨੂੰ ਕਾਪੀ ਕਰ ਸਕੋ।
ਕੋਈ ਕੁਐਰੀ ਟਾਈਮ ਆਉਟ ਕਿਉਂ ਹੋ ਸਕਦੀ ਹੈ?
ਬਹੁਤ ਵਿਆਪਕ ਰਿਕਰਸਿਵ (recursive) ਸਵਾਲ ਜਾਂ ਬਹੁਤ ਵੱਡੇ ਨਮੂਨੇ ਬਹੁਤ ਜ਼ਿਆਦਾ ਸਮਾਂ ਲੈ ਸਕਦੇ ਹਨ। ਟੈਸਟਰ ਇੱਕ ਛੋਟੀ ਸੀਮਾ ਤੋਂ ਬਾਅਦ ਉਹਨਾਂ ਨੂੰ ਰੋਕ ਦਿੰਦਾ ਹੈ ਤਾਂ ਜੋ ਤੁਸੀਂ ਐਕਸਪ੍ਰੈਸ਼ਨ ਨੂੰ ਸੀਮਤ ਕਰ ਸਕੋ ਜਾਂ ਇੱਕ ਛੋਟਾ ਨਮੂਨਾ ਵਰਤ ਸਕੋ।