दिलचस्प पोस्ट
जीआईटी के साथ सबसे अच्छा सीआरएलएफ (गाड़ी वापसी, लाइन फीड) की रणनीति क्या है? जावास्क्रिप्ट या एक स्विच मामले में अभिव्यक्ति ज्ञात न्यूनतम और अधिकतम मूल्य के साथ संख्याओं की श्रेणी को कैसे स्केल किया जाए एक अजगर कार्यक्रम से यूट्यूब-डीएल का उपयोग कैसे करें getWidth () और getHeight () दृश्य का रिटर्न 0 क्यों glReadPixels () आईओएस 6.0 में इस कोड में असफल रहे हैं? जीसीओवी द्वारा रिपोर्ट किए गए डिस्ट्रिक्टर की शाखा क्या है? कंटेनर तत्व के शीर्ष पर इनलाइन ब्लॉक डीआईवी को संरेखित करें दिनांक दिनांक लाइब्रेरी का उपयोग करके डेटटाइम ऑब्जेक्ट में दिनांक स्ट्रिंग परिवर्तित करना एचटीटीपी से HTTPS तक स्वत: पुनर्निर्देशित करने के लिए लोचदार बीनस्टॉक एनजीएन-समर्थित प्रॉक्सी सर्वर कैसे प्राप्त करें? आईई 10 का इस्तेमाल करने के लिए मैं एक HTML5 वीडियो कैसे प्राप्त करूं? कहाँ "शुद्ध वर्चुअल फ़ंक्शन कॉल" दुर्घटनाओं से आती है? क्या प्रतिबिंब का उपयोग करते हुए संरचना के उदाहरणों पर गुण सेट करने का कोई तरीका है? JQuery के साथ iframe पर क्लिक ईवेंट को कैसे जोड़ें PHP read_exif_data और ओरिएंटेशन समायोजित करें

क्या वीबी 6 / वीबीए के लिए एक JSON पार्सर है?

मैं वीबी 6 में एक वेब सेवा का उपभोग करने की कोशिश कर रहा हूं। सेवा – जो मैं नियंत्रित करता हूं – वर्तमान में एक SOAP / XML संदेश या JSON लौटा सकता है। मुझे लगता है कि VB6 के SOAP प्रकार (संस्करण 1) एक वापसी object को संभाल सकता है – string , int जैसे सरल प्रकारों के विपरीत, अब तक मुझे पता नहीं है कि मुझे VB6 को कैसे प्राप्त करने की आवश्यकता है लौटा वस्तुओं के साथ खेलते हैं

इसलिए मैंने सोचा कि मैं जेएसओएन स्ट्रिंग के रूप में वेब सेवा में प्रतिक्रिया को सीरियल कर सकता हूं। क्या वीबी 6 के लिए एक JSON पार्सर मौजूद है?

Solutions Collecting From Web of "क्या वीबी 6 / वीबीए के लिए एक JSON पार्सर है?"

कई अलग-अलग भाषाओं में JSON पार्सर की अप-टू-डेट सूची (मुख्य पृष्ठ के नीचे देखें) के लिए JSON.org देखें। इस लेखन के समय के रूप में, आपको वहां दो अलग-अलग JSON पार्सर के लिए लिंक दिखाई देगा:

  • वीबी-JSON

    • जब मैंने ज़िप फ़ाइल डाउनलोड करने की कोशिश की, विंडोज़ ने कहा कि डेटा भ्रष्ट था। हालांकि, मैं फ़ाइलों को खींचने के लिए 7-ज़िप का उपयोग करने में सक्षम था। यह पता चला है कि ज़िप फ़ाइल में मुख्य "फ़ोल्डर" विंडोज द्वारा एक फ़ोल्डर के रूप में मान्यता प्राप्त नहीं है, 7-ज़िप द्वारा उस मुख्य "फ़ोल्डर" की सामग्री को देख सकता है, ताकि आप इसे खोल सकते हैं और तब तदनुसार फाइलों को निकाल सकते हैं ।
    • इस VB JSON पुस्तकालय के लिए वास्तविक सिंटैक्स वास्तव में सरल है:

       Dim p As Object Set p = JSON.parse(strFormattedJSON) 'Print the text of a nested property ' Debug.Print p.Item("AddressClassification").Item("Description") 'Print the text of a property within an array ' Debug.Print p.Item("Candidates")(4).Item("ZipCode") 
    • नोट: मुझे "माइक्रोसॉफ्ट स्क्रिप्टिंग रनटाइम" और "माइक्रोसॉफ्ट एक्टिक्एक्स डेटा ऑब्जेक्ट्स 2.8" लाइब्रेरी को संदर्भ के माध्यम से उपकरण> संदर्भ के माध्यम से वीबीए संपादक में जोड़ना पड़ा।
    • नोट: VBJSON कोड वास्तव में एक Google कोड प्रोजेक्ट vba-json पर आधारित है हालांकि, वीबीजेएसएन ने मूल संस्करण से कई बग फिक्स का वादा किया है।
  • PW.JSON
    • यह वास्तव में VB.NET के लिए एक लाइब्रेरी है, इसलिए मैंने इसमें बहुत समय व्यतीत नहीं किया।

ओज़माइक समाधान पर बिल्डिंग, जो मेरे लिए काम नहीं कर रहा था (एक्सेल 2013 और आईई 10) इसका कारण यह है कि मैं उजागर JSON ऑब्जेक्ट पर तरीकों को कॉल नहीं कर सका। इसलिए इसके तरीकों को अब एक DOMElement से जुड़े कार्य के माध्यम से सामने आ गया है। यह नहीं पता था कि यह संभव है (आईडीिसपैच-चीज होनी चाहिए), ओज़माइक को धन्यवाद।

जैसा कि ओज़माइक ने कहा है, कोई तृतीय-पक्ष लिबी, कोड की सिर्फ 30 लाइनें नहीं।

 Option Explicit Public JSON As Object Private ie As Object Public Sub initJson() Dim html As String html = "<!DOCTYPE html><head><script>" & _ "Object.prototype.getItem=function( key ) { return this[key] }; " & _ "Object.prototype.setItem=function( key, value ) { this[key]=value }; " & _ "Object.prototype.getKeys=function( dummy ) { keys=[]; for (var key in this) if (typeof(this[key]) !== 'function') keys.push(key); return keys; }; " & _ "window.onload = function() { " & _ "document.body.parse = function(json) { return JSON.parse(json); }; " & _ "document.body.stringify = function(obj, space) { return JSON.stringify(obj, null, space); }" & _ "}" & _ "</script></head><html><body id='JSONElem'></body></html>" Set ie = CreateObject("InternetExplorer.Application") With ie .navigate "about:blank" Do While .Busy: DoEvents: Loop Do While .readyState <> 4: DoEvents: Loop .Visible = False .document.Write html .document.Close End With ' This is the body element, we call it JSON:) Set JSON = ie.document.getElementById("JSONElem") End Sub Public Function closeJSON() ie.Quit End Function 

निम्नलिखित टेस्ट एक जावास्क्रिप्ट ऑब्जेक्ट को स्क्रैच से बनाते हैं, फिर इसे सशक्त बनाता है। फिर यह ऑब्जेक्ट को वापस पार्स करता है और इसकी चाबियाँ पर पुनरावृत्त करता है।

 Sub testJson() Call initJson Dim jsObj As Object Dim jsArray As Object Debug.Print "Construction JS object ..." Set jsObj = JSON.Parse("{}") Call jsObj.setItem("a", 1) Set jsArray = JSON.Parse("[]") Call jsArray.setItem(0, 13) Call jsArray.setItem(1, Math.Sqr(2)) Call jsArray.setItem(2, 15) Call jsObj.setItem("b", jsArray) Debug.Print "Object: " & JSON.stringify(jsObj, 4) Debug.Print "Parsing JS object ..." Set jsObj = JSON.Parse("{""a"":1,""b"":[13,1.4142135623730951,15]}") Debug.Print "a: " & jsObj.getItem("a") Set jsArray = jsObj.getItem("b") Debug.Print "Length of b: " & jsArray.getItem("length") Debug.Print "Second element of b: "; jsArray.getItem(1) Debug.Print "Iterate over all keys ..." Dim keys As Object Set keys = jsObj.getKeys("all") Dim i As Integer For i = 0 To keys.getItem("length") - 1 Debug.Print keys.getItem(i) & ": " & jsObj.getItem(keys.getItem(i)) Next i Call closeJSON End Sub 

आउटपुट

 Construction JS object ... Object: { "a": 1, "b": [ 13, 1.4142135623730951, 15 ] } Parsing JS object ... a: 1 Length of b: 3 Second element of b: 1,4142135623731 Iterate over all keys ... a: 1 b: 13,1.4142135623730951,15 

मुझे पता है यह एक पुराना सवाल है, लेकिन मेरा उत्तर उम्मीद है कि "वीबीए जेसन" की खोज के बाद इस पेज पर आने वाले अन्य लोगों के लिए बड़ी मदद होगी।

मुझे यह पृष्ठ बहुत ही उपयोगी साबित हुआ यह कई एक्सेल-संगत VBA वर्ग प्रदान करता है जो प्रसंस्करण डेटा को JSON प्रारूप में प्रस्तुत करता है।

यहां एक "मूल" VB JSON पुस्तकालय है।

ये JSON का उपयोग करना संभव है जो कि पहले से ही IE8 + में है इस तरह से आपकी तीसरी पार्टी लाइब्रेरी पर निर्भर नहीं है जो कि पुराने समय से बाहर निकलता है और अनचाहे नहीं है।

एमेडियस 'वैकल्पिक संस्करण यहां देखें

 Sub myJSONtest() Dim oJson As Object Set oJson = oIE_JSON() ' See below gets IE.JSON object ' using json objects Debug.Print oJson.parse("{ ""hello"": ""world"" }").hello ' world Debug.Print oJson.stringify(oJson.parse("{ ""hello"": ""world"" }")) ' {"hello":"world"} ' getting items Debug.Print oJson.parse("{ ""key1"": ""value1"" }").key1 ' value1 Debug.Print oJson.parse("{ ""key1"": ""value1"" }").itemGet("key1") ' value1 Debug.Print oJson.parse("[ 1234, 4567]").itemGet(1) ' 4567 ' change properties Dim o As Object Set o = oJson.parse("{ ""key1"": ""value1"" }") o.propSetStr "key1", "value\""2" Debug.Print o.itemGet("key1") ' value\"2 Debug.Print oJson.stringify(o) ' {"key1":"value\\\"2"} o.propSetNum "key1", 123 Debug.Print o.itemGet("key1") ' 123 Debug.Print oJson.stringify(o) ' {"key1":123} ' add properties o.propSetNum "newkey", 123 ' addkey! JS MAGIC Debug.Print o.itemGet("newkey") ' 123 Debug.Print oJson.stringify(o) ' {"key1":123,"newkey":123} ' assign JSON 'objects' to properties Dim o2 As Object Set o2 = oJson.parse("{ ""object2"": ""object2value"" }") o.propSetJSON "newkey", oJson.stringify(o2) ' set object Debug.Print oJson.stringify(o) ' {"key1":123,"newkey":{"object2":"object2value"}} Debug.Print o.itemGet("newkey").itemGet("object2") ' object2value ' change array items Set o = oJson.parse("[ 1234, 4567]") ' Debug.Print oJson.stringify(o) ' [1234,4567] Debug.Print o.itemGet(1) o.itemSetStr 1, "234" Debug.Print o.itemGet(1) Debug.Print oJson.stringify(o) ' [1234,"234"] o.itemSetNum 1, 234 Debug.Print o.itemGet(1) Debug.Print oJson.stringify(o) ' [1234,234] ' add array items o.itemSetNum 5, 234 ' add items! JS Magic Debug.Print o.itemGet(5) ' 234 Debug.Print oJson.stringify(o) ' [1234,234,null,null,null,234] ' assign JSON object to array item o.itemSetJSON 3, oJson.stringify(o2) ' assign object Debug.Print o.itemGet(3) '[object Object] Debug.Print oJson.stringify(o.itemGet(3)) ' {"object2":"object2value"} Debug.Print oJson.stringify(o) ' [1234,234,null,{"object2":"object2value"},null,234] oIE_JSON_Quit ' quit IE, must shut down or the IE sessions remain. Debug.Print oJson.stringify(o) ' can use after but but IE server will shutdown... soon End Sub 

आप वी.बी. से IE.JSON को पुल कर सकते हैं
एक फ़ंक्शन ओआईजेजेएसओएन बनाएँ

 Public g_IE As Object ' global Public Function oIE_JSON() As Object ' for array access o.itemGet(0) o.itemGet("key1") JSON_COM_extentions = "" & _ " Object.prototype.itemGet =function( i ) { return this[i] } ; " & _ " Object.prototype.propSetStr =function( prop , val ) { eval('this.' + prop + ' = ""' + protectDoubleQuotes (val) + '""' ) } ; " & _ " Object.prototype.propSetNum =function( prop , val ) { eval('this.' + prop + ' = ' + val + '') } ; " & _ " Object.prototype.propSetJSON =function( prop , val ) { eval('this.' + prop + ' = ' + val + '') } ; " & _ " Object.prototype.itemSetStr =function( prop , val ) { eval('this[' + prop + '] = ""' + protectDoubleQuotes (val) + '""' ) } ; " & _ " Object.prototype.itemSetNum =function( prop , val ) { eval('this[' + prop + '] = ' + val ) } ; " & _ " Object.prototype.itemSetJSON =function( prop , val ) { eval('this[' + prop + '] = ' + val ) } ; " & _ " function protectDoubleQuotes (str) { return str.replace(/\\/g, '\\\\').replace(/""/g,'\\""'); }" ' document.parentwindow.eval dosen't work some versions of ie eg ie10? IEEvalworkaroundjs = "" & _ " function IEEvalWorkAroundInit () { " & _ " var x=document.getElementById(""myIEEvalWorkAround"");" & _ " x.IEEval= function( s ) { return eval(s) } ; } ;" g_JS_framework = "" & _ JSON_COM_extentions & _ IEEvalworkaroundjs ' need IE8 and DOC type g_JS_HTML = "<!DOCTYPE html> " & _ " <script>" & g_JS_framework & _ "</script>" & _ " <body>" & _ "<script id=""myIEEvalWorkAround"" onclick=""IEEvalWorkAroundInit()"" ></script> " & _ " HEllo</body>" On Error GoTo error_handler ' Create InternetExplorer Object Set g_IE = CreateObject("InternetExplorer.Application") With g_IE .navigate "about:blank" Do While .Busy: DoEvents: Loop Do While .ReadyState <> 4: DoEvents: Loop .Visible = False ' control IE interface window .Document.Write g_JS_HTML End With Set objID = g_IE.Document.getElementById("myIEEvalWorkAround") objID.Click ' create eval Dim oJson As Object 'Set oJson = g_IE.Document.parentWindow.Eval("JSON") ' dosen't work some versions of IE Set oJson = objID.IEEval("JSON") Set objID = Nothing Set oIE_JSON = oJson Exit Function error_handler: MsgBox ("Unexpected Error, I'm quitting. " & Err.Description & ". " & Err.Number) g_IE.Quit Set g_IE = Nothing End Function Public Function oIE_JSON_Quit() g_IE.Quit Exit Function End Function 

अगर आप उपयोगी पाते हैं तो वोट दें

टिम हॉल, एमआईटी लाइसेंस और गीथहब पर VBA-JSON यह वीबीए-जेएसएन का एक और कांटा है जो 2014 के अंत में उभरी है। मैक ऑफिस और विंडोज़ 32 बिट और 64 बिट पर काम करने के दावों

इस पार्टी के लिए देर हो लेकिन माफ करना, लेकिन माइक्रोसॉफ्ट स्क्रिप्ट कंट्रोल का उपयोग करना सबसे आसान तरीका है कुछ नमूना कोड जो कि VBA.CallByName का उपयोग करके ड्रिल करता है

 'Tools->References-> 'Microsoft Script Control 1.0; {0E59F1D2-1FBE-11D0-8FF2-00A0D10038BC}; C:\Windows\SysWOW64\msscript.ocx Private Sub TestJSONParsingWithCallByName() Dim oScriptEngine As ScriptControl Set oScriptEngine = New ScriptControl oScriptEngine.Language = "JScript" Dim sJsonString As String sJsonString = "{'key1': 'value1' ,'key2': { 'key3': 'value3' } }" Dim objJSON As Object Set objJSON = oScriptEngine.Eval("(" + sJsonString + ")") Debug.Assert VBA.CallByName(objJSON, "key1", VbGet) = "value1" Debug.Assert VBA.CallByName(VBA.CallByName(objJSON, "key2", VbGet), "key3", VbGet) = "value3" End Sub 

मैंने वास्तव में Q & AS की एक श्रृंखला की है जैसा कि JSON / VBA संबंधित विषयों का पता लगाया है।

प्रश्न 1 विंडोज़ में एक्सेल वीबीए में, आईडीई के कैपिटलाइज़ेशन वर्तन द्वारा विभाजित पार्स किए गए जेसन के डॉट सिंटैक्स ट्रांसवर्ल्ड के मुद्दे को कैसे कम करना है?

Q2 Windows पर Excel VBA में, कैसे एक JSON सरणी के माध्यम से पाश पार्स करने के लिए?

प्रश्न 3 विंडोज़ में एक्सेल वीबीए में, कैसे पार्स किए गए जेएसओएन चर के लिए "[ऑब्जेक्ट ऑब्जेक्ट]" के बजाय सशक्त JSON रिसेप्शन प्राप्त करना है?

Q4 में Windows Excel VBA, "रन-टाइम एरर '438' पूर्व-एिप्ट करने के लिए JSON कुंजियां कैसे प्राप्त करें: ऑब्जेक्ट इस प्रॉपर्टी या विधि का समर्थन नहीं करता है?"

Q5 विंडोज़ में एक्सेल वीबीए में, पार्स किए गए जेएसओएन व्हेरिएबल्स के लिए वैसे भी यह जेस्क्रिप्ट टाइपइन्फो क्या है?

वीबी 6 – जेसनबैग, एक अन्य जेएसओएन पार्सर / जेनरेटर को वीबीए में थोड़ा परेशानी से आयात करना चाहिए।

मैं एक नेट घटक का उपयोग करने का सुझाव दूंगा। आप इंटरप के माध्यम से वीबी 6 से नेट घटकों का उपयोग कर सकते हैं – यहाँ एक ट्यूटोरियल है । मेरा अनुमान है कि नेट घटकों VB6 के लिए उत्पादित किसी भी चीज़ के मुकाबले अधिक विश्वसनीय और बेहतर समर्थन मिलेगा।

डेटाकॉन्ट्रक्टजसन सेरियलाइज़र या जावास्क्रिप्टस्रीलाइजर जैसी माइक्रोसॉफ्ट। नेट फ्रेमवर्क में घटक हैं। आप JSON.NET जैसे तीसरे पक्ष के पुस्तकालयों का भी उपयोग कर सकते हैं।

आप VB.NET में एक्सेल-डीएनए ऐड-इन लिख सकते हैं। एक्सेल-डीएनए एक पतली लाइब्रेरी है जो आपको एनएटी में एक्सएलएल लिखती है। इस तरह आप संपूर्ण .NET ब्रह्मांड तक पहुंच प्राप्त कर सकते हैं और http://james.newtonking.com/json जैसे सामान का उपयोग कर सकते हैं – एक JSON फ्रेमवर्क जो कि किसी भी कस्टम क्लास में JSON को डिसेरीलाइज़ करता है।

यदि आप रुचि रखते हैं, तो यहां लिखिए VB.NET का उपयोग करते हुए Excel के लिए जेनेरिक एक्सेल जेसन क्लाइंट का निर्माण कैसे किया जाता है:

http://optionexplicitvba.com/2014/05/09/developing-a-json-excel-add-in-with-vb-net/

और यहां कोड का लिंक है: https://github.com/spreadgit/excel-json-client/blob/master/excel-json-client.dna

ScriptControl के शीर्ष पर, JSON पार्स करने की जावास्क्रिप्ट सुविधाओं का उपयोग करते हुए, हम वीबीए में एक पार्सर बना सकते हैं जो JSON के अंदर प्रत्येक डेटा बिंदु को सूचीबद्ध करेगा। जब तक हम एक मान्य JSON प्रदान करते हैं, तब तक कोई समस्या नहीं कि कैसे नेस्टेड या जटिल डेटा संरचना है, यह पार्स एक पूर्ण पेड़ संरचना वापस करेगा।

जावास्क्रिप्ट के Eval, getKeys और getProperty तरीकों को मान्य करने और JSON पढ़ने के लिए बिल्डिंग ब्लॉक प्रदान करते हैं।

वीबीए में एक रिकर्सिव फ़ंक्शन के साथ युग्मित हम एक JSON स्ट्रिंग में सभी चाबियाँ (अप करने के लिए nth स्तर) के माध्यम से पुनरावृति कर सकते हैं। फिर एक वृक्ष नियंत्रण (इस आलेख में प्रयुक्त) या एक शब्दकोश या एक साधारण कार्यपत्रक पर भी, हम आवश्यकतानुसार JSON डेटा की व्यवस्था कर सकते हैं।

यहां पूर्ण VBA कोड। ScriptControl के शीर्ष पर JSON पार्स करने की जावास्क्रिप्ट सुविधाओं का उपयोग करते हुए, हम वीबीए में एक पार्सर बना सकते हैं जो JSON के अंदर प्रत्येक डेटा बिंदु को सूचीबद्ध करेगा। जब तक हम एक मान्य JSON प्रदान करते हैं, तब तक कोई समस्या नहीं कि कैसे नेस्टेड या जटिल डेटा संरचना है, यह पार्स एक पूर्ण पेड़ संरचना वापस करेगा।

जावास्क्रिप्ट के Eval, getKeys और getProperty तरीकों को मान्य करने और JSON पढ़ने के लिए बिल्डिंग ब्लॉक प्रदान करते हैं।

वीबीए में एक रिकर्सिव फ़ंक्शन के साथ युग्मित हम एक JSON स्ट्रिंग में सभी चाबियाँ (अप करने के लिए nth स्तर) के माध्यम से पुनरावृति कर सकते हैं। फिर एक वृक्ष नियंत्रण (इस आलेख में प्रयुक्त) या एक शब्दकोश या एक साधारण कार्यपत्रक पर भी, हम आवश्यकतानुसार JSON डेटा की व्यवस्था कर सकते हैं।

पूर्ण VBA कोड यहाँ।

एक्सेल सेल में फॉर्मूला

 =JSON2("{mykey:1111, mykey2:{keyinternal1:22.1,keyinternal2:22.2}, mykey3:3333}", "mykey2", "keyinternal2") 

प्रदर्शित करता है: 22.2

 =JSON("{mykey:1111,mykey2:2222,mykey3:3333}", "mykey2") 

प्रदर्शित करता है: 2222

  • निर्देश:
  • चरण 1। ALT + F11 दबाएं
  • चरण 2। डालें -> मॉड्यूल
  • चरण 3। उपकरण -> संदर्भ -> माइक्रोसॉफ्ट स्क्रिप्ट कंट्रोल 1.0 पर टिकें
  • चरण 4। इसे नीचे पेस्ट करें
  • चरण 5। ALT + Q बंद VBA विंडो।
 'Tools->References-> 'Microsoft Script Control 1.0; {0E59F1D2-1FBE-11D0-8FF2-00A0D10038BC}; C:\Windows\SysWOW64\msscript.ocx Public Function JSON(sJsonString As String, Key As String) As String On Error GoTo err_handler Dim oScriptEngine As ScriptControl Set oScriptEngine = New ScriptControl oScriptEngine.Language = "JScript" Dim objJSON As Object Set objJSON = oScriptEngine.Eval("(" + sJsonString + ")") JSON = VBA.CallByName(objJSON, Key, VbGet) Err_Exit: Exit Function err_handler: JSON = "Error: " & Err.Description Resume Err_Exit End Function Public Function JSON2(sJsonString As String, Key1 As String, Key2 As String) As String On Error GoTo err_handler Dim oScriptEngine As ScriptControl Set oScriptEngine = New ScriptControl oScriptEngine.Language = "JScript" Dim objJSON As Object Set objJSON = oScriptEngine.Eval("(" + sJsonString + ")") JSON2 = VBA.CallByName(VBA.CallByName(objJSON, Key1, VbGet), Key2, VbGet) Err_Exit: Exit Function err_handler: JSON2 = "Error: " & Err.Description Resume Err_Exit End Function 

जैसा कि जेसन तार के अलावा कुछ भी नहीं है, इसलिए इसे आसानी से संभाला जा सकता है अगर हम इसे सही तरीके से हेरफेर कर सकते हैं, चाहे कितना जटिल संरचना हो। मुझे नहीं लगता कि चाल करने के लिए किसी बाहरी पुस्तकालय या कनवर्टर का उपयोग करना आवश्यक है। यहाँ एक उदाहरण है जहां मैंने स्ट्रिंग हेरफेर का उपयोग करते हुए जेसन डेटा पार्स किया है।

 Sub Json_coder() Dim http As New XMLHTTP60, itm As Variant With http .Open "GET", "http://jsonplaceholder.typicode.com/users", False .send itm = Split(.responseText, "id"":") End With x = UBound(itm) For y = 1 To x Cells(y, 1) = Split(Split(itm(y), "name"": """)(1), """")(0) Cells(y, 2) = Split(Split(itm(y), "username"": """)(1), """")(0) Cells(y, 3) = Split(Split(itm(y), "email"": """)(1), """")(0) Cells(y, 4) = Split(Split(itm(y), "street"": """)(1), """")(0) Cells(y, 5) = Split(Split(itm(y), "suite"": """)(1), """")(0) Cells(y, 6) = Split(Split(itm(y), "city"": """)(1), """")(0) Cells(y, 7) = Split(Split(itm(y), "zipcode"": """)(1), """")(0) Cells(y, 8) = Split(Split(itm(y), "phone"": """)(1), """")(0) Cells(y, 9) = Split(Split(itm(y), "website"": """)(1), """")(0) Cells(y, 10) = Split(Split(Split(itm(y), "company"": ")(1), "name"": """)(1), """")(0) Cells(y, 11) = Split(Split(itm(y), "catchPhrase"": """)(1), """")(0) Cells(y, 12) = Split(Split(itm(y), "bs"": """)(1), """")(0) Next y End Sub 

यह vb6 उदाहरण कोड है, ठीक से परीक्षण किया, काम किया

उपरोक्त अच्छे उदाहरणों से, मैंने बदलाव किए और यह अच्छा परिणाम मिला

यह कुंजी {} और एरेज़ पढ़ सकती है []

 Option Explicit 'in vb6 click "Tools"->"References" then 'check the box "Microsoft Script Control 1.0"; Dim oScriptEngine As New ScriptControl Dim objJSON As Object ''to use it Private Sub Command1_Click() MsgBox JsonGet("key1", "{'key1': 'value1' ,'key2': { 'key3': 'value3' } }")''returns "value1" MsgBox JsonGet("key2.key3", "{'key1': 'value1' ,'key2': { 'key3': 'value3' } }") ''returns "value3" MsgBox JsonGet("result.0.Ask", "{'result':[{'MarketName':'BTC-1ST','Bid':0.00004718,'Ask':0.00004799},{'MarketName':'BTC-2GIVE','Bid':0.00000073,'Ask':0.00000074}]}") ''returns "0.00004799" MsgBox JsonGet("mykey2.keyinternal1", "{mykey:1111, mykey2:{keyinternal1:22.1,keyinternal2:22.2}, mykey3:3333}") ''returns "22.1" End Sub Public Function JsonGet(eKey$, eJsonString$, Optional eDlim$ = ".") As String Dim tmp$() Static sJsonString$ If Trim(eKey$) = "" Or Trim(eJsonString$) = "" Then Exit Function If sJsonString <> eJsonString Then sJsonString = eJsonString oScriptEngine.Language = "JScript" Set objJSON = oScriptEngine.Eval("(" + eJsonString + ")") End If tmp = Split(eKey, eDlim) If UBound(tmp) = 0 Then JsonGet = VBA.CallByName(objJSON, eKey, VbGet): Exit Function Dim i&, o As Object Set o = objJSON For i = 0 To UBound(tmp) - 1 Set o = VBA.CallByName(o, tmp(i), VbGet) Next i JsonGet = VBA.CallByName(o, tmp(i), VbGet) Set o = Nothing End Function Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Set objJSON = Nothing End Sub